В настоящее время я сталкиваюсь с проблемой, я объясняю ее подробно. В своем приложении я создал 6 мероприятий из своей домашней деятельности. Как A, B, C, D, E, F, G. Считайте, что это домашняя деятельность В B я загружаю свое местоположение в базу данных firebase в текущем узле идентификатора пользователя. После этого каждое действие, такое как C, D и т. Д. c ... Я загружу некоторые дополнительные сведения в мою базу данных firebase. И, наконец, в G деятельности я установил кнопку для перенаправления на дом, как показано в коде ниже. Это идеально подходит для домашнего занятия, но когда я снова нажимаю на действие B. Это показывает ошибку и выходит. То, что оно показывало, находится в действии F, я получу некоторые данные, в первый раз они не показывают ошибку, но теперь это показывает, что нет ссылки для извлечения из базы данных. И одна вещь, которую я делаю в приложении: как я сказал в Деятельности B, я устанавливаю местоположение, используя карту и загружая в базу данных, всякий раз, когда я делаю это, все другие данные в моем узле ID пользователя будут удаляться, и это местоположение будет устанавливаться изначально и затем другие.
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(InchargeEventConfirmedActivity.this,InchargeHomeActivity.class);
startActivity(intent);
finish();
}
});
Я испробовал много возможных способов, таких как FLAG_ACTIVITY_SINGLE_TOP и т. д. c ... но не выяснил, есть ли лучшее решение для моей проблемы. Заранее спасибо
private void Getdata2()
{
Total_date_Ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
{
final String From_date = dataSnapshot.child("From").getValue().toString();
final String To_date = dataSnapshot.child("To").getValue().toString();
Total_service_dates1.setText(From_date);
Total_service_dates2.setText(To_date);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
{
}
});
}
В этом коде выше показана ошибка в этой строке final String From_date = dataSnapshot.child ("From"). GetValue (). ToString (); вроде нет ссылки. но в 1-й раз все работает нормально, и после этого я перейду к финальному занятию fini sh (). В некоторых испытаниях, если After снова приходит в дом и снова щелкает по Деятельности B, он перенаправляет на активность E, если для операции G не установлено значение fini sh (), он перенаправляется на эту операцию.
2020-04-25 21:02:15.571 25013-25013/com.example.smileyservice E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.smileyservice, PID: 25013
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
at com.example.smileyservice.InchargeNewEvents.InchargeEventPreviewFinalActivity$8.onDataChange(InchargeEventPreviewFinalActivity.java:561)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@19.2.0:75)
at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@19.2.0:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@19.2.0:55)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6806)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
this появляется ошибка, когда я снова нажимаю на действие B из действия A. Это означает, что после одного l oop. AB C DEFG (A) (B). Ошибка. Эта ошибка отображается в действии F.