我在 ListView 上设置 ArrayAdapter 时遇到 NullPointerException。
下面提到了代码和异常。由于列表中提供了数据.. 我知道它不是 NULL。 那为什么会出现这个问题......非常感谢任何帮助或指点!
代码如下: MainActivityFragment.java
public class MainActivityFragment extends Fragment {
public MainActivityFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_main, container, false);
List list = new ArrayList<String>();
list.add("Today - Sunny - 88/63");
list.add("Tomorrow - Foggy - 88/63");
list.add("Wednesday - Cloudy - 88/63");
list.add("Thursday - Rainy - 88/63");
list.add("Friday - Sunny - 88/63");
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getActivity(),
R.layout.fragment_main,
R.id.list_item_forecast_textview,
list);
ListView listView = (ListView) view.findViewById(R.id.list_view_forecast);
listView.setAdapter(arrayAdapter);
return view;
}
}
异常(exception):
java.lang.NullPointerException
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:392)
at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
at android.widget.AbsListView.obtainView(AbsListView.java:2255)
at android.widget.ListView.makeAndAddView(ListView.java:1790)
at android.widget.ListView.fillDown(ListView.java:691)
at android.widget.ListView.fillFromTop(ListView.java:752)
at android.widget.ListView.layoutChildren(ListView.java:1630)
最佳答案
你错了。
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getActivity(),
R.layout.fragment_main,
R.id.list_item_forecast_textview,
list);
在 R.layout.fragment_main
你应该在这里传递 ListItem Layout
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getActivity(),
R.layout.yourListItemLayout,
R.id.list_item_forecast_textview,
list);
关于android - ArrayAdapter.createViewFromResource() 上的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30238001/