Fala pessoal, blz?
Tenho uma activity (CriarPedidoItemActivity) com um searchable activity (SearchableProdutoActivity) que pesquisa em um RecyclerView contendo os dados dos produtos. Com o resultado da Searchable Activity, permito que o usuário clique no produto e o app o leva para a tela de digitação de quantidade e preço.
Até aí está funcionando legal, porém gostaria de que no momento em que o usuário gravasse essa informação, o app voltasse para a activity que possui o searchable activity e com isso passasse as informações digitadas como parâmetro, fechando assim a searchable activity.
Alguém já fez algo parecido?
Segue abaixo os códigos das classes:
CriarPedidoActivity
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_criar_pedido_item); if (savedInstanceState != null) { pedidoCabecalho = (PedidoCabecalho) savedInstanceState.getSerializable("pedidoCabecalho"); } else { pedidoCabecalho = (PedidoCabecalho) getIntent().getSerializableExtra(CLIENTE_SELECIONADO); } // TOOLBAR mToolbar = (Toolbar) findViewById(R.id.toolbarProdutos); mToolbar.setTitle("Cliente.: " + pedidoCabecalho.getCliente().getRazaoSocial()); mToolbar.setSubtitle("SubTotal.: " + subTotalSt + " - Qtd. itens.: " + itensLancados.size()); setSupportActionBar(mToolbar); DBHelper dbHelper = new DBHelper(this); VendaDiretaDAO vendaDiretaDAO = new VendaDiretaDAO(dbHelper); produtos = vendaDiretaDAO.getListaProduto(); dbHelper.close();//fechando a conexão com o banco de dados mRecyclerView = (RecyclerView) findViewById(R.id.listaProdutos); mRecyclerView.setHasFixedSize(true); mLayoutManager = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(mLayoutManager); mAdapter = new ProdutoAdapter(produtos, this); mRecyclerView.setAdapter(mAdapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_criar_pedido_item, menu); this.menu = menu; MenuItem itemPedido = menu.findItem(R.id.itensPedido); if (itensLancados.size() == 0) { itemPedido.setIcon(R.drawable.pedido_branco); } else { itemPedido.setIcon(R.drawable.pedido_com_itens); } SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView; MenuItem item = menu.findItem(R.id.action_searchable_activity); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { searchView = (SearchView) item.getActionView(); } else { searchView = (SearchView) MenuItemCompat.getActionView(item); } searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); searchView.setQueryHint(getResources().getString(R.string.search_hint_produtos)); return true; }Searchable Activity
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_searchable_produtos); // TOOLBAR mToolbar = (Toolbar) findViewById(R.id.toolbarProdutos); mToolbar.setTitle("Resultado de pesquisa - Produtos"); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); mRecyclerView = (RecyclerView) findViewById(R.id.listaClientes); // use this setting to improve performance if you know that changes // in content do not change the layout size of the RecyclerView mRecyclerView.setHasFixedSize(true); // use a linear layout manager mLayoutManager = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(mLayoutManager); clContainer = (CoordinatorLayout) findViewById(R.id.cl_container); handleSearch(getIntent()); } public void handleSearch(Intent intent) { if (Intent.ACTION_SEARCH.equalsIgnoreCase(intent.getAction())) { String q = intent.getStringExtra(SearchManager.QUERY); filtroProdutos(q); } } @Override protected void onNewIntent(Intent intent) { setIntent(intent); handleSearch(intent); } public void filtroProdutos(String q) { DBHelper dbHelper = new DBHelper(this); VendaDiretaDAO vendaDiretaDAO = new VendaDiretaDAO(dbHelper); final List<Produto> produtos = vendaDiretaDAO.getListaFiltroProduto(q); dbHelper.close();//fechando a conexão com o banco de dados mRecyclerView.setVisibility(produtos.isEmpty() ? View.GONE : View.VISIBLE); if (produtos.isEmpty()) { TextView tv = new TextView(this); tv.setText("Nenhum produto encontrado."); tv.setTextColor(getResources().getColor(R.color.colorPrimarytext)); tv.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT)); tv.setId(R.id.txtDetalheProdutoDescricao); tv.setGravity(Gravity.CENTER); clContainer.addView(tv); } else if (clContainer.findViewById(R.id.txtDetalheProdutoDescricao) != null) { clContainer.removeView(clContainer.findViewById(R.id.txtDetalheProdutoDescricao)); } mAdapter = new PedidoProdutoAdapter(produtos, this); mRecyclerView.setAdapter(mAdapter); }
Att.,
JuniorYou received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.






0 comentários:
Postar um comentário