java - 如何在我的适配器中启动 Activity?

标签 java android android-activity android-adapter

如何在适配器中启动 Activity ?我在我的适配器中使用这个方法:

post.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        context.startActivity(new Intent(context,asabani_cat.class));
    }
});

但这只适用于我的应用程序 fragment ,当我在 Activity 中调用这段代码时,应用程序突然崩溃了!

我的另一个问题是,它是在适配器中启动 Activity 的好方法吗?

我的日志:

11-27 21:25:25.086 22237-22237/com.katibehpayam.mahdi.katibehpayam E/AndroidRuntime: FATAL EXCEPTION: main 11-27 21:25:25.086 22237-22237/com.katibehpayam.mahdi.katibehpayam E/AndroidRuntime: java.lang.NullPointerException 11-27 21:25:25.086 22237-22237/com.katibehpayam.mahdi.katibehpayam E/AndroidRuntime: at com.katibehpayam.mahdi.katibehpayam.adapter_common$7.onClick(adapter_common.java:266) 11-27 21:25:25.086 22237-22237/com.katibehpayam.mahdi.katibehpayam E/AndroidRuntime: at android.view.View.performClick(View.java:4377) 11-27 21:25:25.086 22237-22237/com.katibehpayam.mahdi.katibehpayam E/AndroidRuntime: at android.view.View$PerformClick.run(View.java:18044) 11-27 21:25:25.086 22237-22237/com.katibehpayam.mahdi.katibehpayam E/AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:725) 11-27 21:25:25.086 22237-22237/com.katibehpayam.mahdi.katibehpayam E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:92) 11-27 21:25:25.086 22237-22237/com.katibehpayam.mahdi.katibehpayam E/AndroidRuntime: at android.os.Looper.loop(Looper.java:137) 11-27 21:25:25.086 22237-22237/com.katibehpayam.mahdi.katibehpayam E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5306) 11-27 21:25:25.086 22237-22237/com.katibehpayam.mahdi.katibehpayam E/AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method) 11-27 21:25:25.086 22237-22237/com.katibehpayam.mahdi.katibehpayam E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:511) 11-27 21:25:25.086 22237-22237/com.katibehpayam.mahdi.katibehpayam E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 11-27 21:25:25.086 22237-22237/com.katibehpayam.mahdi.katibehpayam E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 11-27 21:25:25.086 22237-22237/com.katibehpayam.mahdi.katibehpayam E/AndroidRuntime: at dalvik.system.NativeStart.main(Native Method)

最佳答案

你可以试试:

post.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        v.getContext().startActivity(new Intent(v.getContext(),asabani_cat.class));
    }
});

关于java - 如何在我的适配器中启动 Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33962580/

相关文章:

java - 字符类中是否有任何方法允许两个单词之间存在空格

java - 通过http GET从Json对象中提取数据

java - 按下后退按钮时如何在android中停止asynctask?

android - 从 Fragment 开始一个新的 Activity

android - Android 中的操作、类别、 Activity 名称有什么区别?

java - 如何使用 Swings 将图像添加到 Menuitem

java - C#/Java 在 Xamarin Android 中验证 Unicode 字符

Java 2D 数组 : Go through groups of entries and sum their values

android - IllegalArgumentException : Window type can not be changed after the window is added

android - J2V8 和 Stetho