Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android RecyclerView onClick适配器中创建对话框_Java_Android_Android Recyclerview_Android Dialog - Fatal编程技术网

Java 如何在android RecyclerView onClick适配器中创建对话框

Java 如何在android RecyclerView onClick适配器中创建对话框,java,android,android-recyclerview,android-dialog,Java,Android,Android Recyclerview,Android Dialog,我想在RecyclerView中列出的项目的onClick事件中打开一个对话框 这是活动代码: 这是单击列表中的元素时出现的错误: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 您的上下文为空,请按照下面的步骤将上下文引入java类 public static Context contextOfApplication; //

我想在RecyclerView中列出的项目的onClick事件中打开一个对话框

这是活动代码:

这是单击列表中的元素时出现的错误:

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application

您的上下文为空,请按照下面的步骤将上下文引入java类

 public static Context contextOfApplication;  // create variable

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

         contextOfApplication = getApplicationContext();
}
在Oncreate之外创建方法

现在在适配器类中添加上下文

final Dialog dialog = new Dialog("youractivityname".getContextOfApplication());
或@SachinVarma建议

只需使用这个v.getContext


如何初始化回收器视图适配器?你能加上那个代码吗?我怀疑您传递的上下文可能为空。谢谢@SripadRaj,请检查我是否添加了完整的代码好的,现在您如何在活动中初始化适配器?你能添加那部分代码吗?@SripadRaj我刚刚添加了我如何从活动中启动适配器的代码。他们不能在onCreateViewHolder中使用parent.getContext吗?对于活动,getApplicationContext可以工作,但它在循环视图适配器中如何工作。@LanceToth是的,我们可以使用。……谢谢@SachinVarma,它可以工作,我只需要通过v.getCOntext谢谢你much@GowthamanM对于简单的类a,传递上下文,但确保在完成类a时将其删除,即完成后上下文=null。另外,永远不要将上下文作为静态传递。这将导致内存泄漏,这是一回事,但静态有时成为空的情况下,内存不足的手机。在前面提到的这种情况下,通过构造函数传递上下文。
 public static Context contextOfApplication;  // create variable

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

         contextOfApplication = getApplicationContext();
}
public static Context getContextOfApplication(){
        return contextOfApplication;
    }
final Dialog dialog = new Dialog("youractivityname".getContextOfApplication());