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

时间:2019-07-12 21:32:01

标签: java android android-viewpager

我的应用使用制表符。如何将数据从选项卡3的适配器传递到选项卡1。 标签使用viewPager。

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

示例;在操作来自另一个片段的片段时,请使用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”

我们将为您提供帮助

1 个答案:

答案 0 :(得分:0)

您需要创建接口以将数据从一个活动或片段转移到另一活动或片段。

就像这样:

npm

}

注册到适配器:-

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()));

}

}

您终于在onClick()中获得了点击列表提供者的值