Android 如何在recyclerview中获取上下文

Android 如何在recyclerview中获取上下文,android,android-recyclerview,Android,Android Recyclerview,我有一个recyclerview,想打开一个新的活动,显示所单击元素的完整信息。 这是我为setOnItemClickListener编写的代码,Toast工作正常,并正确显示元素名称,但它没有打开新活动,它记录了以下错误:W/ActivityThread:handleWindowVisibility:no activity for token android.os。BinderProxy@dcc4899 我在另一篇文章中读到,您无法在onCreat中获取上下文,我不知道是否存在错误或如何解决它

我有一个recyclerview,想打开一个新的活动,显示所单击元素的完整信息。 这是我为setOnItemClickListener编写的代码,Toast工作正常,并正确显示元素名称,但它没有打开新活动,它记录了以下错误:W/ActivityThread:handleWindowVisibility:no activity for token android.os。BinderProxy@dcc4899


我在另一篇文章中读到,您无法在onCreat中获取上下文,我不知道是否存在错误或如何解决它…

在这种情况下,只需指定您的活动名称,而不是v.getContext()。像这样:

Intent intent = new Intent(FromActivity.this, FestivalActivity.class);

我相信遵循这些步骤应该会奏效

  • 在recyclerview适配器类中创建私有上下文变量
  • 更改recyclerview构造函数,使其接受上下文参数并将私有上下文变量初始化为给定参数
  • 在Intent中使用新创建的上下文参数
  • 当从另一个类调用recyclerview构造函数时,只需将“this”作为上下文参数传递
  • 代码:

    一,

    二,

    三,


    对不起,现在更新了这个代码在哪里?OnCreate()或OnCreateView()?是在OnCreate中设置的setContentView(R.layout.your_layout)吗?此代码在OnCreate()中,这是我的意图,它不起作用。错误到底说了什么?注意:您需要将“FromActivity”重命名为您所在的任何活动。同时尝试将.this改为.classyeah我知道,我有点困惑,因为我正在使用片段在主活动中显示不同的选项卡,但我尝试了两者:MainActivity给出:错误:不是封闭类:MainActivity。占位符片段给出:构造函数Intent。Intent(String,Uri)不适用(参数不匹配;占位符片段无法转换为String),但我没有在适配器中执行Intent,并且我无法获取mContext,所以为什么我需要该私有上下文?或者我应该在适配器中编写所有侦听器吗?是的,onClick侦听器应该在adapter类中。如果我没有记错的话,我已经制作了一个应用程序,在其中我遇到了相同的问题。您的onclick应该在适配器类的重写方法onBindViewHolder下定义。如果您可以将代码上载到某个地方,我可以查看并尝试我的解决方案
    Intent intent = new Intent(FromActivity.this, FestivalActivity.class);
    
    private Context mContext;
    
        public YourRecyclerViewAdapter(Context context) {
        this.mContext = context;
    }
    
    Intent intent = new Intent(mContext, YourActivity.class);