У меня есть активность со SlidingTab, и когда я нажимаю кнопку «Назад» на мобильном телефоне, приложение просто вылетает и показывает эту ошибку:
- Я использую Firebase, я не знаю, если этоимеет значение.
Это ошибка Logcat:
10-17 13:29:34.688 6074-6074/br.com.tecmafandroid.projeto.tecmaf E/AndroidRuntime: FATAL EXCEPTION: main
Process: br.com.tecmafandroid.projeto.tecmaf, PID: 6074
com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type br.com.tecmafandroid.projeto.tecmaf.model.Contato
at com.google.android.gms.internal.zzelw.zzb(Unknown Source)
at com.google.android.gms.internal.zzelw.zza(Unknown Source)
at com.google.firebase.database.DataSnapshot.getValue(Unknown Source)
at br.com.tecmafandroid.projeto.tecmaf.fragment.ContatosFragment$1.onDataChange(ContatosFragment.java:101)
at com.google.android.gms.internal.zzegf.zza(Unknown Source)
at com.google.android.gms.internal.zzeia.zzbyc(Unknown Source)
at com.google.android.gms.internal.zzeig.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Это мой фрагмент Contatos (где появляется ошибка):
public class ContatosFragment extends Fragment {
private ListView listView;
private ArrayAdapter adapter;
private ArrayList<Contato> contatos;
private DatabaseReference firebase;
private ValueEventListener valueEventListenerContatos;
private String identificadorContato;
public ContatosFragment() {
// Required empty public constructor
}
@Override
public void onStart() {
super.onStart();
firebase.addValueEventListener(valueEventListenerContatos);
abrirCadastroContatoSuprimentos(); /* Criar a tela principal cadastra o contato Vendas - Validar e/ou logar cadastra o contato Assistencia - Entra no fragmento contatos cadastra o Suprimentos */
}
@Override
public void onStop() {
super.onStop();
firebase.removeEventListener(valueEventListenerContatos);
}
@Override
public View onCreateView(LayoutInflater inflater, final ViewGroup container,
Bundle savedInstanceState) {
//Instânciar objetos
contatos = new ArrayList<>();
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_contatos, container, false);
//Monta listview e adapter
listView = (ListView) view.findViewById(R.id.lv_contatos);
/*adapter = new ArrayAdapter(
getActivity(),
R.layout.lista_contato,
contatos
);*/
adapter = new ContatoAdapter(getActivity(), contatos);
listView.setAdapter(adapter);
//Recuperar contatos do firebase
//Preferencias preferencias = new Preferencias(getActivity());
String identificadorUsuarioLogado = Base64Custom.codificarBase64(UsuarioFirebase.getIdentificadorUsuario());
firebase = ConfiguracaoFirebase.getFirebase()
.child("contatos")
.child(identificadorUsuarioLogado);
//Listener para recuperar contatos - mudar para uma lista fixa
valueEventListenerContatos = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//Limpar lista
contatos.clear();
//Listar contatos
for (DataSnapshot dados : dataSnapshot.getChildren()) {
Contato contato = dados.getValue(Contato.class);
contatos.add(contato);
}
adapter.notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
//Click na lista e abre a conversa - manter
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(getActivity(), ConversaActivity.class);
// recupera dados a serem passados
Contato contato = contatos.get(position);
// enviando dados para conversa activity
String nome = contato.getNome();
intent.putExtra("nome", contato.getNome()); // ta aqui o problema acho
intent.putExtra("email", contato.getEmail());
startActivity(intent);
}
});
return view;
}
private void abrirCadastroContatoSuprimentos() {
String emailContato;
emailContato = "suprimentos@tecmaf.com.br";
identificadorContato = Base64Custom.codificarBase64(emailContato);
firebase = ConfiguracaoFirebase.getFirebase().child("usuarios").child(identificadorContato);
firebase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue() != null) {
//Recuperar dados do contato a ser adicionado
Usuario usuarioContato = dataSnapshot.getValue(Usuario.class);
//Recuperar identificador usuario logado (base64)
Preferencias preferencias = new Preferencias(getContext());
String identificadorUsuarioLogado = Base64Custom.codificarBase64(UsuarioFirebase.getIdentificadorUsuario());
firebase = ConfiguracaoFirebase.getFirebase();
firebase = firebase.child("contatos")
.child(identificadorUsuarioLogado)
.child(identificadorContato);
Contato contato = new Contato();
contato.setIdentificadorUsuario(identificadorContato);
contato.setEmail(usuarioContato.getEmail());
contato.setNome(usuarioContato.getNome());
firebase.setValue(contato);
//Toast.makeText(getContext(), "Suprimentos OK", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getContext(), "Problema ao adicionar contato suprimentos", Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
это мойcontato.class ():
public class Contato {
private String identificadorUsuario;
private String nome;
private String email;
public Contato() {
}
public String getIdentificadorUsuario() {
return identificadorUsuario;
}
public void setIdentificadorUsuario(String identificadorUsuario) {
this.identificadorUsuario = identificadorUsuario;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Структура базы данных:

Эта проблема не отображается, когда я вернулся с:
getSupportActionBar (). SetDisplayHomeAsUpEnabled (true)
У кого-то есть идея?