Android 如何将数据从片段传递到其viewholder
我正在尝试将数据从片段传递到它的viewHolder。我的数据是一个字符串值。单击某个项目时,我将在另一个活动中使用此数据。我在谷歌上搜索了很多次,但找不到任何解决办法。但我不知道怎么做。这是我的片段和视图持有者 如果你想知道其他事情,请告诉我Android 如何将数据从片段传递到其viewholder,android,string,android-intent,fragment,Android,String,Android Intent,Fragment,我正在尝试将数据从片段传递到它的viewHolder。我的数据是一个字符串值。单击某个项目时,我将在另一个活动中使用此数据。我在谷歌上搜索了很多次,但找不到任何解决办法。但我不知道怎么做。这是我的片段和视图持有者 如果你想知道其他事情,请告诉我 public class CreateStickerFragment extends Fragment { FragmentCreateStickerBinding binding; CreateStickerFragmentArgs
public class CreateStickerFragment extends Fragment {
FragmentCreateStickerBinding binding;
CreateStickerFragmentArgs args;
CreateStickerAdapter adapter;
List<Pack> mList;
GridLayoutManager layoutManager;
public CreateStickerFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
binding = FragmentCreateStickerBinding.inflate(inflater, container, false);
adapter = new CreateStickerAdapter(getActivity());
layoutManager = new GridLayoutManager(getActivity(), adapter.getGridSize());
layoutManager.setSpanSizeLookup(adapter.getSpanSizeLookup());
binding.recyclerList.setLayoutManager(layoutManager);
binding.recyclerList.setAdapter(adapter);
args = CreateStickerFragmentArgs.fromBundle(getArguments());
String fName = args.getFolderName(); // I want to send this data to my view holder
if (!AdmUtils.isContextInvalid(getActivity())) {
mList = new ArrayList<>();
for (int i = 0; i <= 29; i++) {
mList.add(new Pack());
}
adapter.setData(mList);
}
return binding.getRoot();
}
}
//viewholder
public class CreateStickerViewHolder extends BindableViewHolder<Pack> {
private TextView numberOfRow;
private ImageView sticker;
public CreateStickerViewHolder(@NonNull View itemView) {
super(itemView);
numberOfRow = itemView.findViewById(R.id.numberOfRow);
sticker = itemView.findViewById(R.id.sticker);
}
@Override
public void bindTo(final Activity activity, final Pack model, final int position) {
numberOfRow.setText(String.valueOf(position + 1));
sticker.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(activity, StickersCreatorActivity.class);
activity.startActivity(intent);
}
});
}
}
public类CreateStickerFragment扩展了片段{
零碎的装订;
创建碎片args args args;
创建适配器适配器;
列表列表;
网格布局管理器布局管理器;
公共片段(){
//必需的空公共构造函数
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
绑定=碎片绑定。充气(充气机、容器、假);
adapter=新创建的适配器(getActivity());
layoutManager=新的GridLayoutManager(getActivity(),adapter.getGridSize());
layoutManager.setPansizeLookup(adapter.getSpanSizeLookup());
binding.recyclerList.setLayoutManager(layoutManager);
binding.recyclerList.setAdapter(适配器);
args=CreateStickerFragmentArgs.fromBundle(getArguments());
String fName=args.getFolderName();//我想将此数据发送到我的视图持有者
如果(!AdmUtils.isContextValid(getActivity())){
mList=新的ArrayList();
对于(int i=0;i您是否创建了CreateSticketAdapter?如果是,您可以向其添加文件夹名称属性以传递到ViewHolder实例
public class CreateStickerAdapter extends BaseAdapter<Pack, CreateStickerViewHolder> {
public CreateStickerAdapter(Activity activity) {
super(activity, R.layout.row_create_sticker);
}
@Override
protected CreateStickerViewHolder createViewHolder(View view) {
return new CreateStickerViewHolder(view);
}
}