gpt4 book ai didi

java - 如何将数据从Adapter内的onBindViewHolder传递到Tab

转载 作者:行者123 更新时间:2023-12-02 03:07:45 31 4
gpt4 key购买 nike

我的应用程序使用选项卡。我如何将数据从选项卡 3 的适配器传递到选项卡 1。选项卡使用 viewPager。

当我单击选项卡 3 上的项目时,它会使用 viewPager.setCurrentItem(0) 打开选项卡 1。打开选项卡 1 时如何将数据传递到选项卡。

示例;在从另一个 fragment 打开一个 fragment 时,可以使用 Bundle。如何对选项卡执行相同操作。

Tab 3 Adapter code

@Override
public void onBindViewHolder(final ViewHolder viewHolder, final int position) {

final VendorHolder vendorHolder = list.get(position);
viewHolder.shoeName.setText(vendorHolder.getName());


viewHolder.vendorName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final int shoeID = position;

//Data i want to pass
Bundle bundle = new Bundle();
bundle.putString("data1", "data");
bundle.putString("dataType", "Type1");

final ViewPager viewPager = MainActivity.myViewpager;
//Instance of viewpager in MainActivity
viewPager.setCurrentItem(0);

}
});

}


Inside Tab 1
//Receive data here

在选项卡 1 中,接收“data1”和“dataType”

如有帮助,我们将不胜感激

最佳答案

您需要创建接口(interface)将数据从一个 Activity 或 fragment 传输到另一个 Activity 或 fragment 。

就像这样:

public interface ClickListner {
void onClick(int position, int id);

}

注册到适配器:-

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder>{

private ClickListner clickListner;

MyAdapter(ClickListner clickListner){
this.clickListner = clickListner;
}

onBindViewHolder{

holder.text.setOnClickListener(v -> clickListner.onClick(position, allLeadModelList.get(position).getId()));

}

}

以及 Activity 或 Fragment 侧代码:

public class AllLeadsFragment extends Fragment implements ClickListner {

onCreateview(){

myAdapter = new MyAdapter(this::onClick);

}

@Override
public void onClick(int position, int id) {

}

}

您终于在 onClick() 中获得了点击监听器值

关于java - 如何将数据从Adapter内的onBindViewHolder传递到Tab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57014248/

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