如何将字符串数组从recyclerview适配器传递到Android中的片段



我正在从适配器中检索值,并在 ArrayList<String>中存储值。我正在将arraylist转换为字符串阵列并将阵列从recyclerview apapter转换为其他片段,但是我在其他 Fragment中获得了null值。
这是将ArrayList<String>转换为字符串数组的代码并发送到其他片段

String []tablesId=new String[tableId.size()];
           tablesId=tableId.toArray(tablesId);
        TableAssignConfirm confirm=new TableAssignConfirm();
           Bundle bundle=new Bundle();
               bundle.putStringArray("tablesIds",tablesId);
               confirm.setArguments(bundle);  

这是在其他片段中从 Bundle检索值的代码

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View v=inflater.inflate(R.layout.table_assign_confirm, container, false);
       // Bundle bundle=getArguments().getStringArray("tableIds");
        String []getTables=getArguments().getStringArray("tableIds");
        Log.i("ids", Arrays.toString(getTables));
        return v;
    }  

如何解决此问题并获得值?

尝试此

Bundle bundle=getArguments();
if(bundle!=null){
    String []getTables=bundle.getStringArray("tableIds");
 }

在您的代码中

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View v=inflater.inflate(R.layout.table_assign_confirm, container, false);
       Bundle bundle=getArguments();
       if(bundle!=null){
          String []getTables=bundle.getStringArray("tableIds");
        }
        Log.i("ids", Arrays.toString(getTables));
        return v;
    }  

在适配器中创建一个接口

public interface OnItemClickListener {
  void onItemClicked(int position, ArrayList<DeliveryTimeSlot> list);
}

在您的适配器调用中,来自fragment

Adapter adapter = new Adapter(context, list, new Adapter.OnItemClickListener() {
            @Override
            public void onItemClicked(int position, ArrayList<String> list) {
                  // Handle list and perform actions here
            }
        });

在您的适配器上

private OnItemClickListener onItemClickListener; // Global scope 

在构造函数中:

this.onItemClickListener = onItemClickListener;

在您的项目单击事件中:

itemView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
      onItemClickListener.onItemClicked(position, _list);
    }
});

检查您的getStringArray()值。应该是getStringArray("tablesIds")。下次要更加专心((

相关内容

  • 没有找到相关文章

最新更新