Meus amigos, preciso receber numa Activity mais de um parâmetro.
Eu to fazendo assim:
Passagem: Aqui é a Activity Lista
Intent it = new Intent(getBaseContext(), Vendas.class);
it.putExtra("codigo", idItem);
startActivity(it);
Recebimento: Aqui é a Activity Venda
Intent it = getIntent();
ID = it.getIntExtra("codigo", 1);
int parametro = ID;
if (parametro != 0) {
final ClienteDAO dao = new ClienteDAO(getBaseContext());
final ClienteVO vo = dao.getById(ID);
IdCliente = (TextView) findViewById(R.id.IdCliente);
lblNomeCliente = (TextView) findViewById(R.id.lblNomeCliente);
IdCliente.setText(vo.getId().toString());
lblNomeCliente.setText(vo.getRazaosocial_nome());
Toast.makeText(getBaseContext(), "Cliente com valor" + ID, Toast.LENGTH_LONG).show();
}
Como faço para que a Activity Venda receba o ID e o Produto vindo da Activity ListarProduto?
@Override
public boolean onContextItemSelected(MenuItem item){
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo )item.getMenuInfo();
idItem = lista_produto.get(info.position).getId();
if(item.getItemId() == MENU_VENDA){
Intent it2 = new Intent(getBaseContext(), Vendas.class);
it2.putExtra("codigo2", idItem);
startActivity(it2);
}
return super.onContextItemSelected(item);
}
Na Activity Venda eu fiz assim:
Intent it = getIntent();
ID = it.getIntExtra("codigo", 1); // Aqui é para o nome do Cliente. O ID ja declarei como private int ID = 0.
if (it != null){
int msg = it.getIntExtra("codigo",1);
Toast.makeText(getBaseContext(), "Valor ID Cliente " + msg, Toast.LENGTH_LONG).show();
}
Quando entro na lista de clientes, seleciono um cliente da lista e mando pra tela de Vendas, funciona, perfeito. Se adicionar mais um para o produto na tela Vendas, não irá dar um erro pois estará esperando um produto da lista de produtos? Vou ter dois parâmetros na tela Vendas que vão vir de duas telas diferentes.
Se entendi, está funcionando assim: em vendas você chama ListarProdutos e quer pegar o retorno, é isso?
Se for, é só chamar com startActivityForResult e pegar o retorno no onActivityResult
Intent it = getIntent();
ID = it.getIntExtra("codigo", 1);
if (it != null){
int msg = it.getIntExtra("codigo",1);
Toast.makeText(getBaseContext(), "Valor ID Cliente " + msg, Toast.LENGTH_LONG).show();
}
Você tem que definir como vai ser a navegação entre as telas do seu app. Do jeito que está não fecha.
Você pode, por exemplo, começar pela Lista de Clientes, selecionar um, chamar Vendas, em vendas colocar um botão Adicionar Produto, chamar Produtos, selecionar produto, retornar para Vendas…
Ou, outras alternativas, mas tem que ser funcional.