从recyclerview适配器启动新活动

时间:2020-01-30 09:42:19

标签: java android firebase android-intent

我正在将数据从Firebase实时数据库读取到recyclerview,并且在recyclerview项上有一个按钮来启动新活动。我有这个onClick方法

public void bookBtnOnClick(final int position){
        mBookButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mContext.startActivity(new Intent(this,ReservationForm.class));
                }
        });
    } 

但是它不能解决意图构造器

7 个答案:

答案 0 :(得分:1)

而不是,请尝试mContext,因为我猜您正在Adapter类中尝试

  mContext.startActivity(new Intent(mContext,ReservationForm.class));

答案 1 :(得分:1)

'this'更改为'mContext';

mContext.startActivity(new Intent(mContext,ReservationForm.class));

答案 2 :(得分:1)

尝试->

Intent intent =  new Intent(context, ReservationForm.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mcontext.startActivity(intent);

答案 3 :(得分:1)

为@ S.ambika的答案添加更多内容。

在创建REPAIR TABLE _table_name_ QUICK时将this更改为mContext

Intent

与使用mContext.startActivity(new Intent(mContext,ReservationForm.class)); 时一样,它将提供当前上下文。在您的情况下,this返回了this的上下文,并且为了启动新的Activity,我们需要onClick的上下文。

答案 4 :(得分:0)

尝试一下:

public void bookBtnOnClick(final int position){
     mContext.startActivity(new Intent(context, ReservationForm.class));
} 

答案 5 :(得分:0)

这怎么样

Intent intent = new Intent (v.getContext(), ReservationForm.class);
v.getContext().startActivity(intent);

答案 6 :(得分:0)

Define Context mContext;  on starting of adapter and in constructor use this.mcontext=mcontext;

mContext.startActivity(new Intent(mContext,ReservationForm.class));