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