【发布时间】:2016-06-27 20:02:02
【问题描述】:
我正在尝试将ArrayList<String> 从 Activity 发送到 ListFragment。
所以我可以在TableLayout 中使用片段。
没有必要使用ListFragment,我可以使用任何类型的Fragment,但我正在尝试理解。
这是我的MainActivity:
FragmentTransaction fragmentTransaction;
ArrayList<String> namesArray = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
namesArray.add("Android");
namesArray.add("Iphone");
namesArray.add("Windows Phone");
Bundle bundle = new Bundle();
bundle.putStringArrayList("valuesArray", namesArray);
namesFragment myFragment = new namesFragment();
myFragment.setArguments(bundle);
fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.main_container, new namesFragment());
fragmentTransaction.commit();
}
我的ListFragment:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ArrayList<String> values = getArguments().getStringArrayList("valuesArray");
ArrayAdapter<String> adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
}
上面的代码给了我:
不幸的是,应用程序已停止。
那么我怎样才能实现这样的目标呢?
【问题讨论】:
-
请发布 logcat 错误
-
正如 Juan 提到的,当你遇到这样的崩溃时,你应该总是发布你的 logcat 错误消息,这样我们就可以更容易地找出导致崩溃的原因。此外,您提到“以及如何将片段中的 ArrayList 显示为 ListView” - 这应该作为一个单独的问题发布。
标签: java android android-fragments arraylist