Estou tentando fazer o membro editável, porém, quando vou inicializar a segunda activity, o app quebra.Códigos:
ListaDeMembros.java:
package com.example.membresiaigreja.activities;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.annotation.NonNull;
import com.example.membresiaigreja.DAO.MembroDAO;
import com.example.membresiaigreja.R;
import com.example.membresiaigreja.models.Membro;
import java.util.List;
public class ListaDeMembros extends Activity {
private final MembroDAO dao = new MembroDAO();
final List<Membro> membros = dao.todos();
public static final String TITULO_APPBAR = "Lista de Membros";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.lista_de_membros);
setTitle(TITULO_APPBAR);
}
@Override
protected void onResume() {
super.onResume();
ListView listaMembros = configuraLista();
listaMembros.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int posicao, long id) {
Membro membroEscolhido = membros.get(posicao);
Intent trocaParaForm = new Intent(ListaDeMembros.this, FormularioNovoMembro.class);
trocaParaForm.putExtra("membro", membroEscolhido);
startActivity(trocaParaForm);
}
});
}
@NonNull
private ListView configuraLista() {
ListView listaMembros = findViewById(R.id.lbListaMembros);
listaMembros.setAdapter(new ArrayAdapter<>(
this,
android.R.layout.simple_list_item_1,
membros));
return listaMembros;
}
public void onClickNovo(View v) {
abreFormularioNovoMembro();
}
private void abreFormularioNovoMembro() {
startActivityForResult(
new Intent(this, FormularioNovoMembro.class), 1);
}
}
FormularioNovoMembro.java:
package com.example.membresiaigreja.activities;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.example.membresiaigreja.DAO.MembroDAO;
import com.example.membresiaigreja.R;
import com.example.membresiaigreja.models.Membro;
public class FormularioNovoMembro extends AppCompatActivity {
public static final String TITULO_APPBAR = "Novo Membro";
private EditText campoNome;
private EditText campoTelefone;
private EditText campoDataNascimento;
private final MembroDAO dao = new MembroDAO();
private Membro membro;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.formulario_novo_membro);
setTitle(TITULO_APPBAR);
inicializaCampos();
configuraBotaoSalvar();
Intent dados = getIntent();
membro = (Membro) dados.getSerializableExtra("membro");
campoNome.setText(membro.getNome());
campoTelefone.setText(membro.getTelefone());
campoDataNascimento.setText(membro.getDataNascimento());
}
private void configuraBotaoSalvar() {
Button botaoSalvar = findViewById(R.id.btSalvar);
botaoSalvar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/*Membro membroCriado = criaMembro();
salva(membroCriado);*/
preencheMembro();
dao.edita(membro);
finish();
}
});
}
private void inicializaCampos() {
campoNome = findViewById(R.id.edNome);
campoTelefone = findViewById(R.id.edTelefone);
campoDataNascimento = findViewById(R.id.edDataNascimento);
}
private void salva(Membro membro) {
dao.salva(membro);
finish();
}
private void preencheMembro() {
String nome = campoNome.getText().toString();
String telefone = campoTelefone.getText().toString();
String dataNascimento = campoDataNascimento.getText().toString();
membro.setNome(nome);
membro.setTelefone(telefone);
membro.setDataNascimento(dataNascimento);
}
}
Erro: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.example.membresiaigreja.models.Membro.getNome()' on a null object reference Alguém pode me ajudar?