我正在从Adapter中检索值并在ArrayList<String>
中存储值。我正在将ArrayList转换为String Array并将Array从RecyclerView Adapter传递给Other Fragment,但我在其他Fragment
中获取空值。
这是将ArrayList<String>
转换为String Array并发送到Other Fragment
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;
}
如何解决此问题并获取值?
答案 0 :(得分:1)
试试这个
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;
}
答案 1 :(得分:0)
检查您的getStringArray()
值。它应该是getStringArray("tablesIds")
。下次要更加注意))
答案 2 :(得分:0)
在适配器中创建一个界面
input
来自片段 的适配器调用中的
public interface OnItemClickListener {
void onItemClicked(int position, ArrayList<DeliveryTimeSlot> list);
}
适配器上的
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;