【发布时间】:2019-03-09 13:52:26
【问题描述】:
我正在尝试使用意图从一个活动导航到另一个活动,但是当调用 onclick 方法时我的应用程序崩溃了,给出了空指针异常这是我的适配器类的代码。
@Override
public void onBindViewHolder(absadapter.exViewHolder holder, final int position){
holder.exname.setText(exList.get(position).name);
holder.exlogo.setImageResource(exList.get(position).logoId);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (position == 0) {
Intent intent=new Intent(context,crunches.class);
context.startActivity(intent);
}
}
});
}
这里是 logcat 错误:
FATAL EXCEPTION: main
Process: com.example.ruchit.totalfitness, PID: 1481
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
at android.content.ComponentName.<init>(ComponentName.java:130)
at android.content.Intent.<init>(Intent.java:5787)
at com.example.ruchit.totalfitness.absadapter$1.onClick(absadapter.java:60)
at android.view.View.performClick(View.java:6312)
at android.view.View$PerformClick.run(View.java:24811)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:171)
at android.app.ActivityThread.main(ActivityThread.java:6649)
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:824)
【问题讨论】:
-
从 logcat 发布错误。
-
您的
context可能是null。 -
Logcat 应该指出哪个对象为空。请张贴出来让我们帮忙。最有可能的
context为空。 -
你可以使用这个 holder.itemView.context.startActivity(intent)
-
context可能为空,因此在创建时将您的活动上下文传递给适配器,然后您可以在适配器中使用该上下文
标签: java android android-studio android-intent android-recyclerview