gpt4 book ai didi

android - 从 recyclerView 适配器调用 fragment

转载 作者:行者123 更新时间:2023-11-29 19:23:13 25 4
gpt4 key购买 nike

我想在 imageItem click 上调用 fragment getSupportFragmentManger 无法调用 hera 并且在适配器构造函数中传递它时也无法工作

   public class MarketOneRecyclerAdapter extends       RecyclerView.Adapter<MarketOneRecyclerAdapter.MainViewHolder>{                                          

public interface OnItemClickListener {
void onItemClick(ArrayList< MarketItems> item, int Pos);
}
private final OnItemClickListener listener;
private ArrayList<MarketItems>marketArrayList;
private Context context;

public MarketOneRecyclerAdapter(Context context, ArrayList<MarketItems> marketArrayList, OnItemClickListener listener) {
this.listener = listener;
this.context = context;
this.marketArrayList = marketArrayList;
}
@Override
public MainViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.market_item, parent, false);
return new MarketOneRecyclerAdapter.MainViewHolder(view);
}

@Override
public void onBindViewHolder(MainViewHolder holder, int position) {
holder.bind(marketArrayList,listener,position);

}

@Override
public int getItemCount() {
return marketArrayList.size();
}


public class MainViewHolder extends RecyclerView.ViewHolder{

ImageView imageItem;
CardView cardView;



public MainViewHolder(View itemView) {

super(itemView);



cardView= (CardView) itemView.findViewById(R.id.market_card_view);
imageItem= (ImageView) itemView.findViewById(R.id.market_item_imageView);
imageItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

//Want here call a fragment

}
});


}
public void bind(final ArrayList<MarketItems> item, final OnItemClickListener listener , final int i){
Picasso.with(context).load(marketArrayList.get(i).getImages()).networkPolicy(NetworkPolicy.OFFLINE).into(imageItem);


imageItem.setTag(item.get(i).getImages());

itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
listener.onItemClick(item,i);
`enter code here` }
});
}
}
}

public class ImageItemFragment extends Fragment {
ImageView imageView;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

View view =inflater.inflate(R.layout.fragment_image_item, container, false);

imageView= (ImageView) view.findViewById(R.id.market_item_image);
//Picasso.with(getActivity()).load(marketItems.getImages()).networkPolicy(NetworkPolicy.OFFLINE).into(imageView);


return view;
}
}

最佳答案

holder是OnBindViewHolder中的ViewHolder

holder.image_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AppCompatActivity activity = (AppCompatActivity) v.getContext();
Fragment myFragment = new TaskApprovalFragmentDetails();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.linearlayouttaskapproval, myFragment).addToBackStack(null).commit();


}
});

关于android - 从 recyclerView 适配器调用 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41945226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com