java - 如何在适配器类中传递 Intent

标签 java android android-studio android-intent android-recyclerview

我正在尝试使用 Intent 从一个 Activity 导航到另一个 Activity ,但是当调用 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)

最佳答案

改变这个

 Intent intent=new Intent(context,crunches.class);
            context.startActivity(intent);

v.getContext().startActivity(new Intent(v.getContext(), crunches.class));

希望对您有帮助!

关于java - 如何在适配器类中传递 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52642184/

相关文章:

java - 如何限制 bundle 在 OSGi 中对服务的使用?

android - Android中项目下的RecyclerView Header

android - 如何在 Oreo 或更高版本中显示抬头通知

安卓指纹扫描仪应用程序

android-studio - 已安装 flutter !但仍然显示 “Flutter plugin not installed; this adds Flutter specific functionality”

java - 如何在 Web 服务请求之间发送用户名?

java - Mahout:CSV 到 vector 并运行程序

java - 如何编写一个cron表达式或设置一个在Spring中只执行一次的计时器?

ios - CFURLRequestSetHTTPCookieStorageAcceptPolicy_block_invoke : no longer implemented and should not be called

android - 在 Android Studio 向导的选项卡式 Activity 中错误计算 AppBarLayout 高度、顶部间隙