Tecnologia do Blogger.
RSS

[androidbrasil-dev] Retorno de searchable Activity

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.,

Junior

--
You 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.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário