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

在Android中如何将字符串数组从RecyclerView适配器传递到片段,android,android-fragments,arraylist,android-recyclerview,android-bundle,Android,Android Fragments,Arraylist,Android Recyclerview,Android Bundle,我正在从适配器检索值,并将值存储在ArrayList中。我正在将ArrayList转换为字符串数组,并将数组从RecyclerView适配器传递到其他片段,但我在其他片段中获得空值 这是用于将ArrayList转换为字符串数组并发送到其他片段的代码 String []tablesId=new String[tableId.size()]; tablesId=tableId.toArray(tablesId); TableAssignConfirm confi

我正在从适配器检索值,并将值存储在
ArrayList
中。我正在将ArrayList转换为字符串数组,并将数组从RecyclerView适配器传递到其他片段,但我在其他
片段中获得空值
这是用于将
ArrayList
转换为字符串数组并发送到其他片段的代码

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

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

检查您的
getStringArray()
值。它应该是
getStringArray(“表ID”)
。下次要更专心些

在适配器中创建接口

在构造函数调用中:

在您的项目上单击事件:

试试这个

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

试图在空对象上调用虚拟方法“java.lang.String[]android.os.BaseBundle.getStringArray(java.lang.String)”,我遇到错误reference@Satya当我在日志字符串[]getTables=getArguments().getStringArray(“TableId”)中打印此数组时,很乐意为您提供帮助; Log.i(“ids”,Arrays.toString(getTables));我不是在印刷价值观。数组是空的吗?@Satya可以在这里检查
tableId=tableId.toArray(tableId)是否将该值插入数组是。当我在日志中打印时,我得到了这个结果,04-03 11:21:37.989 21005-21005/biz.fyra.bookapp I/tables:[10,9]很难达到50信誉((在进行此更改后,尝试调用虚拟方法“java.lang.String[]时出现错误)空对象引用上的android.os.BaseBundle.getStringArray(java.lang.String)“”
private OnItemClickListener onItemClickListener; // Global scope 
this.onItemClickListener = onItemClickListener;
itemView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
      onItemClickListener.onItemClicked(position, _list);
    }
});
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;
    }