Bom dia, Estou começando na programação Java e tentando fazer uma espécie de cadastro com base nos programas ensinados nos crusos de android. Uma duvida que estou tendo é na passagem de dados entre as activities. O processo imaginado é o seguinte: 1ºEntro no formulario do Aluno/Pessoa 2°Clico em um botão que me leva a outra activity com a lista de produtos já cadastrados 3°Seleciono os produtos referentes àquela pessoa 4ºFinalizo a seleção e volto para a tela de formulario trazendo os produtos selecionados Porém estou em duvida de como transferir esses dados e de como recebe-los na activity que já está iniciada, pois quando tentei recebe-las o android studio já apresentou erro na hora que a activity formulario foi iniciada pela primeira vez.
Segue primeiras tentativas: (Código resumido)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_formulario_aluno);
inicializacaoDosCampos();
carregaAluno();
configuraBotaoSelecao();
}
@Override
protected void onResume() {
super.onResume();
Bundle bundle = getIntent().getExtras();
List<Integer> lista = bundle.getIntegerArrayList("nSelecionados");
}
private void configuraBotaoSelecao() {
Button botaoSelecao = findViewById(R.id.activity_formulario_aluno_seleciona_compras);
botaoSelecao.setOnClickListener(view -> abreListaComprasSelecao());
}
private void abreListaComprasSelecao() {
startActivity(new Intent(this, ListaSelecaoComprasActivity.class));
}
}
Activity de selecão das compras:
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_selecao_compras);
setTitle(TITULO_APPBAR);
configuraLista();
}
@Override
protected void onResume() {
super.onResume();
listaComprasView.atualizaSCompras();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater()
.inflate(R.menu.activity_lista_selecao_compras_menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
if(itemId == R.id.activity_lista_selecao_compra_menu_salvar){
finalizaFormulario();
}
return super.onOptionsItemSelected(item);
}
private void finalizaFormulario() {
Intent intent = new Intent(ListaSelecaoComprasActivity.this, FormularioAlunoActivity.class);
intent.putIntegerArrayListExtra("nSelecionados", nSelecionados);
finish();
}
private void configuraLista() {
ListView listaDeCompras = findViewById(R.id.activity_lista_selecao_compras_listview);
listaComprasView.configuraSAdapter(listaDeCompras);
configuraListenerDeCliquePorItem(listaDeCompras);
registerForContextMenu(listaDeCompras);
}
private void configuraListenerDeCliquePorItem(ListView listaDeCompras) {
listaDeCompras.setOnItemClickListener((adapterView, view, posicao, id) -> {
Compra compraEscolhida = (Compra) adapterView.getItemAtPosition(posicao);
Toast.makeText(this, compraEscolhida.getNome()+" Escolhido", Toast.LENGTH_SHORT).show();
nSelecionados.add(posicao);
});
}
}