我想使用recyclerview中的intent从另一个活动recyclerview中获取数据

时间:2019-08-23 04:12:31

标签: java android-studio android-intent android-recyclerview

我尝试使用RecyclerViewMainActivity将数据从RecyclerView活动(Activity2)发送到另一个putExtra活动(getExtraIntent,但是当我尝试获得Intent

Intent intent = getIntent();

在{{1}的Activity2中,此代码给出错误onBindViewHolder,因为找不到Intent intent = getIntent();

那么我该怎么做才能从getIntent()获得Intent

这是我在MainActivity中的代码:

Activity2

3 个答案:

答案 0 :(得分:2)

根据您的描述,您正在将数据从MainActivity的{​​{1}}发送到RecyclerView。 此外,Activity2在所有keydata = intent.getIntExtra("key",0);中是通用的。

因此,与其从switch cases中的getIntent()中提取数据,不如在onBindViewHolder本身中提取数据,然后使用构造函数将其传递给您的Activity2

例如。

RecyclerViewAdapter

答案 1 :(得分:0)

由于您位于适配器内,因此需要为意图提供上下文。

将您的活动上下文传递给适配器构造函数。然后尝试使用它

Intent intent = ((Activity) mContext).getIntent();

答案 2 :(得分:0)

它显示错误是因为您位于适配器内部,还为扩展Activity的类定义了getIntent()函数,您需要获取Activity对象,该对象将在获取活动上下文之后从中获取定义了回收者视图。在函数onCreateViewHolder中定义这样的上下文-

Context context;
 public RequestViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int 
i) {

context = 
LayoutInflater.from(viewGroup.getContext()).inflate(R.id.yourLayou,null,false).getContext()
;


}

然后您可以通过-

来获得Intent。
@Override
  public void onBindViewHolder(SliderAdapterVH viewHolder, int position) {

 Intent intent = ((Activity) context).getIntent();

}