Android listView适配器错误
我定义了这个字符串数组:
String[] mCountryList = new String[200];
并用JSON数据填充变量,当我用ArrayAdapter
使用该变量时:
ArrayAdapter<String> myAdaptor = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, mCountryList);
我得到这个错误:
显示java.lang.NullPointerException
我认为字符串数组mCountryList
可以mCountryList
值。 例如:
mCountryList[0]="x";
mCountryList[1]="x";
mCountryList[2]=null;
我该如何解决这个问题?
我得到的stacktrace是:
2459-2459 / com.example.behzad.behmytour E / AndroidRuntime:致命异常:主进程:com.example.behzad.behmytour,PID:2459 java.lang.NullPointerException在android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java: 394)在android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)在android.widget.AbsListView.obtainView(AbsListView.java:2263)android.widget.ListView.makeAndAddView(ListView.java:1790)在android。 widget.ListView.fillDown(ListView.java:691)at android.widget.ListView.fillFromTop(ListView.java:752)at android.widget.ListView.layoutChildren(ListView.java:1630)at android.widget.AbsListView.onLayout (AbsListView.java:2091)在android.view.View.layout(View.java:14817)在android.view.ViewGroup.layout(ViewGroup.java:4631)
看起来你的项目之一是null
,就像你可能认为的那样,但是在你的问题中没有表达出容易理解的东西。 解决办法是,确保它不是。
Android小部件ArrayAdapter中的NullPointerException createViewFromResource
您可能希望使用List
而不是数组,然后只填充尽可能多的项目,而不是拥有包含200个项目的静态数组,除非您始终拥有200个项目。
所以使用:
List<String> mCountryList = new ArrayList<String>();
代替
String[] mCountryList=new String[200];
然后填充它,像这样:
mCountryList.add("Your String");
我认为你的错误是在代码mCountryList[2]=null;
尽管允许这样做,但将字符串初始化为空并不是一个好主意,在Java中当然不常见。 只有对象可以设置为null。
建议 : mCountryList[2]= "";
改为设置为空白字符串。