Я получаю эту ошибку Method invocation 'toString' may produce 'java.lang.NullPointerException
, когда я пытаюсь удалить данные из firebase, это также приводит к сбою моего приложения.
Эта строка создает проблемы:
String notat = dataSnapshot1.child("notat").getValue().toString();
Есть ли что-то, что я сделал неправильно?
Вот мой logcat:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
at com.example.server.almu.Notater$2$1.onDataChange(Notater.java:145)
at com.google.android.gms.internal.to.zza(Unknown Source:13)
at com.google.android.gms.internal.vj.zzHX(Unknown Source:2)
at com.google.android.gms.internal.vp.run(Unknown Source:71)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
MainActivty:
private void loaddata(){
Query query = databaseNotater.orderByValue();
final FirebaseRecyclerAdapter<Notat, NoteViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Notat, NoteViewHolder>(
Notat.class,
R.layout.single_note_layout,
NoteViewHolder.class,
query
) {
@Override
protected void populateViewHolder(final NoteViewHolder viewHolder, Notat model, int position) {
final String notatId = getRef(position).getKey();
databaseNotater.child(notatId).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot1) {
String notat = dataSnapshot1.child("notat").getValue().toString();
viewHolder.setNoteTitle(notat);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
};
mNoteslist.setAdapter(firebaseRecyclerAdapter);
firebaseRecyclerAdapter.notifyDataSetChanged();
}
Удалить код метода:
private void testendredialog(final String jobbnavn, final String jobbId) {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
LayoutInflater inflater = getLayoutInflater();
final View dialogView = inflater.inflate(R.layout.test_slettdialog, null);
dialogBuilder.setView(dialogView);
final ImageView ivslettjobb = (ImageView) dialogView.findViewById(R.id.ivslett1);
dialogBuilder.setTitle(jobbnavn);
final AlertDialog alertDialog = dialogBuilder.create();
alertDialog.show();
ivslettjobb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
deleteJobb(jobbId);
alertDialog.dismiss();
}
});
}
private void deleteJobb(String id) {
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("Jobb").child(id);
DatabaseReference databaseReference1= FirebaseDatabase.getInstance().getReference("Notater").child(id);
DatabaseReference databaseReference2= FirebaseDatabase.getInstance().getReference("Oppgaver").child(id);
databaseReference2.removeValue();
databaseReference1.removeValue();
databaseReference.removeValue();
Toast.makeText(this, "Ansatt slettet", Toast.LENGTH_LONG).show();
final listJobber adapter = new listJobber(Jobbliste.this, listjobb);
listjobber.setAdapter(adapter);
adapter.notifyDataSetChanged();
}