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]= ""; 改为设置为空白字符串。

链接地址: http://www.djcxy.com/p/93143.html

上一篇: Android listView adaptor error

下一篇: How do I stop stacktraces truncating in logs