Я пытаюсь передать данные Cloud Firestore из моего диалогового окна предупреждения во фрагмент. Данные Firestore хранятся в виде списка. Я могу прочитать данные Firestore, когда щелкаю элемент внутри моего списка, но не могу передать его фрагменту через интерфейс.
Что я пробовал:
Я пытался сделать classi c связь между двумя фрагментами (Alert Dialog Fragment и Fragment). Я хочу передать данные из ListView во фрагмент с использованием интерфейса.
С какими ошибками я сталкиваюсь: в настоящее время я сталкиваюсь с "Попытка вызвать метод интерфейса для ссылки на нулевой объект"
My Код:
private SendData listener;
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// System.out.println(arrayList.get(position));
String item_name = arrayList.get(position);
db.collection("FoodName").document(item_name).get()
.addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
String calories = documentSnapshot.getString(CALORIES);
listener.ApplyData(calories);
}
});
public interface SendData
{
void ApplyData (String calories);
}
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
try {
listener = (SendData) context;
}
catch (ClassCastException e)
{
System.out.println("onAttach: ClassCastException : " + e.getMessage());
}
Полный журнал ошибок:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.smartmove, PID: 25860
java.lang.NullPointerException: Attempt to invoke interface method 'void com.example.smartmove.AlertDialogFoodList$SendData.ApplyData(java.lang.String)' on a null object reference
at com.example.smartmove.AlertDialogFoodList$2$1.onSuccess(AlertDialogFoodList.java:109)
at com.example.smartmove.AlertDialogFoodList$2$1.onSuccess(AlertDialogFoodList.java:103)
at com.google.android.gms.tasks.zzn.run(Unknown Source:4)
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:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)