【发布时间】:2017-09-08 11:47:12
【问题描述】:
我有两个fragments.addfragment 和控制fragment。从 addfragment 我使用带有片段事务的捆绑包发送数据,然后在控制片段中,我想使用捆绑包获取该数据,但我无法获取数据。所以请帮助我
这是我的带有片段事务的 addfragment-
relaylist.setAdapter(adapter);
relaylist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
HashMap<String, String> o = (HashMap<String, String>) relaylist.getItemAtPosition(position);
Log.e("ip: ", "> " + o.get("ip"));
Log.e("port: ", "> " + o.get("port"));
Log.e("uname: ", "> " + o.get("uname"));
Log.e("password: ", "> " + o.get("password"));
ControlFragment fragment = new ControlFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
Bundle bundle = new Bundle();
bundle.putString("ip", o.get("ip"));
bundle.putString("port", o.get("port"));
bundle.putString("uname", o.get("uname"));
bundle.putString("password", o.get("password"));
Log.e("ip: ", "> " + o.get("ip"));
Log.e("port: ", "> " + o.get("port"));
Log.e("uname: ", "> " + o.get("uname"));
Log.e("password: ", "> " + o.get("password"));
fragment.setArguments(bundle);
transaction.replace(R.id.mainFrame, new ControlFragment() );
transaction.commit();
}
});
在控制片段中,我以这种方式获取数据......但我无法获取数据
public class ControlFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView= inflater.inflate(R.layout.fragment_control, container, false);
Bundle bundle = getArguments();
String ip=bundle.getString("ip");
Stirng port = bundle.getString("port");
Stirng uname = bundle.getString("uname");
Stirng password = bundle.getString("password");
【问题讨论】:
-
你得到了什么?你调试了吗?
-
我收到这样的错误... java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a空对象引用
标签: java android android-fragments bundle