【问题标题】:Starting new activity from recyclerview adapter从 recyclerview 适配器开始新活动
【发布时间】:2020-01-30 19:45:21
【问题描述】:
我正在从 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));
}
});
}
但它无法解析意图构造函数
【问题讨论】:
标签:
java
android
firebase
android-intent
【解决方案1】:
尝试-->
Intent intent = new Intent(context, ReservationForm.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mcontext.startActivity(intent);
【解决方案2】:
而不是 this 尝试mContext,因为我猜你正在适配器类中尝试它
mContext.startActivity(new Intent(mContext,ReservationForm.class));
【解决方案3】:
将'this'改为'mContext';
mContext.startActivity(new Intent(mContext,ReservationForm.class));
【解决方案4】:
为@S.ambika 的回答添加更多内容。
在创建Intent 时将this 更改为mContext。
mContext.startActivity(new Intent(mContext,ReservationForm.class));
当你使用this 时,它会给出当前上下文。在您的情况下,this 正在返回 onClick 的上下文,并且要启动一个新 Activity,我们需要 Activity 的上下文。
【解决方案5】:
试试这个:
public void bookBtnOnClick(final int position){
mContext.startActivity(new Intent(context, ReservationForm.class));
}
【解决方案6】:
这个怎么样
Intent intent = new Intent (v.getContext(), ReservationForm.class);
v.getContext().startActivity(intent);
【解决方案7】:
Define Context mContext; on starting of adapter and in constructor use this.mcontext=mcontext;
mContext.startActivity(new Intent(mContext,ReservationForm.class));