我有两个fragments
,我们称它们为 A 和 B。A 是 a ListFrag
,B 是用户输入的表单。下面的粗略插图显示了用户交互。
Fragment A
<ListView>
Item1
Item2 <--link to fragment B
Item3
用户点击 Item2 并看到
Fragment B
<TextView> - <EditText>
<TextView> - <EditText>
<TextView> - <EditText>
<save button>
用户填写表格,点击保存,Fragment
B 将信息传回给Fragment
A。AFragment
现在将以前不可见的布局设置为现在可见的状态。Fragment
A 也被重新插入到容器中,因此用户现在可以看到。
Fragment A
<TextView>
<TextView>
<TextView>
<ListView>
Item1
Item2 <--link to fragment B
Item3
这是 onCreate 的代码
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_assets, container, false);
if (getArguments() != null) {
LinearLayout ll = (LinearLayout) view.findViewById(R.id.assets_store_info);
ll.setVisibility(View.VISIBLE);
String mStore = getArguments().getString("store");
String mPhone = getArguments().getString("phone");
String mAddress = getArguments().getString("address");
String mCity = getArguments().getString("city");
String mZip = getArguments().getString("zip");
String mState = getArguments().getString("state");
TextView store = (TextView) view.findViewById(R.id.store);
TextView phone = (TextView) view.findViewById(R.id.phone);
TextView address = (TextView) view.findViewById(R.id.address);
TextView city = (TextView) view.findViewById(R.id.city);
store.setText("Store #: " + mStore);
phone.setText("Phone #: " + mPhone);
address.setText(mAddress);
city.setText(mCity + ", " + mZip + ", " + mState);
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
return view;
}
我的问题是我需要在if-else
我的onCreate
. 如果我不这样做,Fragment
A 将尝试使用空值填充变量,因为它们尚未从Fragment
B 传递,但会导致崩溃。我该怎么做呢?我知道我需要一个if (!=null)
我只是不知道拿什么来比较它。
编辑
通过使布局在 Fragment A 而不是 Fragment B 中再次可见解决了问题。上面的代码现在可以工作