1
resposta

Alguem pode me ajudar com esse código?

Estou desenvolvendo um programa que em determinada parte você clica em um FAB, abre uma activity com uma lista, você clica na lista e o objeto no qual você clicou deveria ir para a lista anterior, porém isso não está acontecendo. Segue código do floating action button:

private void configurarFabNovoJogador() {
        FloatingActionButton buttonNovoJogador = findViewById(R.id.activity_lista_jogadores_fut_fab_add_jogador);
        buttonNovoJogador.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(ListaJogadoresFutActivity.this, ListaJogadoresAdicionaveisAoFutActivity.class);
                intent.putExtra(CHAVE_ADD_JOGADOR_AO_FUT, fut);
                startActivity(intent);
            }
        });
    }

Código do onItemClick da activity que abre ao clicar o FAB:

private void configurarLista() {
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1);
        ListView listaJogadoresAdicionaveis = findViewById(R.id.activity_lista_jogadores_adicionaveis_ao_fut_listview);
        listaJogadoresAdicionaveis.setAdapter(adapter);
        listaJogadoresAdicionaveis.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Jogador jogadorSelecionado = adapter.getItem(position);
                fut.adicionarJogador(jogadorSelecionado);
                Log.i("A", "FUT: " + fut.toString());
                Log.i("A", "Lista: " + fut.getListaJogadores());
                finish();
            }
        });
        atualizarLista();
    }

Código do OnResume:

 @Override
    protected void onResume() {
        Log.i("B", "onResume FUT: " + fut.toString());
        Log.i("B", "onResume Lista: " + fut.getListaJogadores());
        atualizarLista();
        super.onResume();
    }

o método atualizarLista() do on resume é simplesmente um adapter.clear e um adapter.addAll(lista)

Pelos Log.i que eu adicionei, eu percebi que ao clicar pra adicionar, ele me mostra o "fut" correto e mostra a lista do "fut" com o jogador clicado adicionado, porém no onResume os Log.i's mostram o "fut" correto, porém a lista ja nao tem mais o jogador adicionado.

1 resposta

Fala Leonardo, tudo bem ?

Cara olhando pelo seu problema, acho que tu deveria estar usando o startActivityForResult nessa situação.

Pois você precisa enviar um dado de uma activity para outra. Vimos isso nos cursos aqui da plataforma, acredito que tu consiga adaptar seu código para utiliza-lo, se tiver dúvidas estamos a disposição para te ajudar a implementar isso :)