【发布时间】:2016-01-12 21:23:49
【问题描述】:
我在片段中有图像,我想在片段ListView 中显示。
这是我尝试过的,你能猜出我的代码有什么问题吗?
我制作了一个整数 ArrayList 的可绘制图像
ArrayList<Integer> ex1 = new ArrayList<Integer>();
ex1.add(R.drawable.a);
ex1.add(R.drawable.b);
ex1.add(R.drawable.c);
ex1.add(R.drawable.d);
并尝试将其传递给片段,就像我们传递任何 String ArrayList 一样
我在这样的主要活动中声明
public static final String Data = "list";
然后
bundle = new Bundle();
bundle.putIntegerArrayList(DATA, ex1);
Fragment fragment = new ExFragment();
fragment.setArguments(arguments);
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.container, fragment);
ft.addToBackStack("");
ft.commit();
然后在片段类中
private ArrayList<Integer> images = new ArrayList<>();
在片段的创建中
if (getArguments() != null) {
images = getArguments().getIntegerArrayList(MainMenu.DATA);
}
在 oncreateview 中
View rootView = inflater.inflate(R.layout.fragment_ex, container, false);
ListView listView = (ListView) rootView.findViewById(R.id.listview);
ArrayAdapter adapter = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, R.id.text1, images);
listView.setAdapter(adapter);
但它给了我NullPointerException
java.lang.NullPointerException
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:395)
at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
at android.widget.AbsListView.obtainView(AbsListView.java:2724)
at android.widget.ListView.makeAndAddView(ListView.java:1811)
at android.widget.ListView.fillDown(ListView.java:697)
at android.widget.ListView.fillFromTop(ListView.java:763)
at android.widget.ListView.layoutChildren(ListView.java:1641)
at android.widget.AbsListView.onLayout(AbsListView.java:2549)
at android.view.View.layout(View.java:15762)
at android.view.ViewGroup.layout(ViewGroup.java:4867)
如果我从 Integer 更改为 String 并放入 String ArrayList,则此代码与 Strign ArrayList 完美搭配
【问题讨论】:
-
尝试使用
android.R.id.text1作为 ArrayAdapter 构造函数中的第三个参数 -
@daentech 它适用于字符串数组,尽管如此
-
我想你忘了打电话给
fragment.setArguments(bundle);。 -
@Rami 我确实调用了它,它错过了复制粘贴在这里,很抱歉让我更新问题。
标签: java android listview android-fragments arraylist