Android 如何将数据从片段传递到其viewholder

Android 如何将数据从片段传递到其viewholder,android,string,android-intent,fragment,Android,String,Android Intent,Fragment,我正在尝试将数据从片段传递到它的viewHolder。我的数据是一个字符串值。单击某个项目时,我将在另一个活动中使用此数据。我在谷歌上搜索了很多次,但找不到任何解决办法。但我不知道怎么做。这是我的片段和视图持有者 如果你想知道其他事情,请告诉我 public class CreateStickerFragment extends Fragment { FragmentCreateStickerBinding binding; CreateStickerFragmentArgs

我正在尝试将数据从片段传递到它的viewHolder。我的数据是一个字符串值。单击某个项目时,我将在另一个活动中使用此数据。我在谷歌上搜索了很多次,但找不到任何解决办法。但我不知道怎么做。这是我的片段和视图持有者 如果你想知道其他事情,请告诉我

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

}