我想在 Recyclerview 的 onClickListener 方法中充气 Recyclerview。
为此,我知道我必须从相应的活动中获取上下文来设置 LinearLayoutManager。
问题: 由于我在 Fragment 中使用 Recyclerview 来尝试创建另一个 Recyclerview 我不知道如何获得正确的上下文。
我尝试了什么:
在我的构造函数中使用 FragmentActivity mContext 稍后尝试通过“mContext.getApplicationContext()”获取上下文 (从另一篇文章中获取 FragmentActivity,事先使用 Context mContext)
代码中的问题: 我将尽可能好地分解我的代码:
从我尝试初始化 LinearLayoutManager 的第一个 Recyclerview 中找到代码
公共类 deckbuilder_RViewAdapter_Card 扩展 RecyclerView.Adapter {
public deckbuilder_RViewAdapter_Card(FragmentActivity mContext, List<Cards> mData) {
this.mData = mData;
this.mContext = mContext;
}
public void onBindViewHolder(@NonNull final ViewHolder viewHolder, final int position) {
fab_deckbuilder_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
List<Decklist> listCards = new ArrayList<>();
listCards.add(new Decklist( ... );
LinearLayoutManager layoutManagerCards = new LinearLayoutManager(mContext.getApplicationContext(), LinearLayoutManager.VERTICAL, false);
rvList.setLayoutManager(layoutManagerCards);
deckbuilder_RViewAdapter_List addCardAdapter = new deckbuilder_RViewAdapter_List(mContext, listCards);
rvList.setAdapter(addCardAdapter);
}
});
}
public int getItemCount() {
return mData.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
ImageView ivCardImage;
TextView tvCardName;
public ViewHolder(@NonNull View introListView) {
super(introListView);
fab_deckbuilder_add = introListView.findViewById(R.id.fab_deckbuilder_add);
fab_deckbuilder_remove = introListView.findViewById(R.id.fab_deckbuilder_remove);
rvList = introListView.findViewById(R.id.rv_deckbuilder_list);
}
}
沧海一幻觉
相关分类