【发布时间】:2019-02-06 12:06:30
【问题描述】:
我有一个显示文档列表的 FirestoreRecyclerAdapter。我在列表中的每个项目旁边都有一个按钮。 单击此按钮时,我想获取所选项目的唯一 ID,然后将用户带到显示该项目的个人详细信息的页面。
基本上我想将点击的文档的 ID 传递到下一页。但是,我的按钮在单击时会引发空指针异常。
这段代码来自我的 ClubAdapter 类。
public class ClubAdapter1 extends FirestoreRecyclerAdapter<Club, ClubAdapter1.ClubHolder> {
private String clubId;
private Context context;
public ClubAdapter1(@NonNull FirestoreRecyclerOptions<Club> options) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull ClubHolder holder, int position, @NonNull Club model) {
holder.lblName.setText(model.getClubName());
//getting the ID of the particular event clicked
clubId = getSnapshots().getSnapshot(position).getId();
holder.btnDetails.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(context, ViewSingleClub.class);
i.putExtra("id", clubId);
context.startActivity(i);
}
});
}
@NonNull
@Override
public ClubHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.clublist_layout, parent, false);
return new ClubHolder(v);
}
class ClubHolder extends RecyclerView.ViewHolder {
TextView lblName;
Button btnDetails;
public ClubHolder(@NonNull View itemView) {
super(itemView);
lblName = itemView.findViewById(R.id.lblName);
btnDetails = itemView.findViewById(R.id.btnDetails);
}
}
}
我一直收到错误消息
Intent i = new Intent(context, ViewSingleClub.class);
我认为这可能与我的上下文变量引用自身有关,但也不确定我是否正确获取了 ID。
有人可以帮忙吗?
这是我的错误:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.marykate.marykatefordefyp, PID: 2718
java.lang.NullPointerException
at android.content.ComponentName.<init>(ComponentName.java:77)
at android.content.Intent.<init>(Intent.java:3842)
at com.example.marykate.marykatefordefyp.ClubAdapter1$1.onClick(ClubAdapter1.java:36)
at android.view.View.performClick(View.java:4457)
at android.view.View$PerformClick.run(View.java:18491)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5336)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:681)
at dalvik.system.NativeStart.main(Native Method)
【问题讨论】:
标签: java android firebase google-cloud-firestore firebaseui