Android listView adaptor error

I define this String Array:

String[] mCountryList = new String[200];

and fill up the variable with JSON data, and when I use that variable with an ArrayAdapter :

ArrayAdapter<String> myAdaptor = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, mCountryList);

I get this error:

java.lang.NullPointerException

I think the String array mCountryList can have null values. For example:

mCountryList[0]="x";
mCountryList[1]="x";
mCountryList[2]=null;

How can I solve this?

The stacktrace I get is:

2459-2459/com.example.behzad.behmytour E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.example.behzad.behmytour, PID: 2459 java.lang.NullPointerException at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394) at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362) at android.widget.AbsListView.obtainView(AbsListView.java:2263) 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) at android.widget.AbsListView.onLayout(AbsListView.java:2091) at android.view.View.layout(View.java:14817) at android.view.ViewGroup.layout(ViewGroup.java:4631)


Looks like one of your items is null , like you probably thought, but didn't express easily understandable in your question. The solution is, make sure it's not.

NullPointerException at android widget ArrayAdapter createViewFromResource

You might want to use a List instead of an array, and then only populate as many items as you have instead of having a static array with 200 items, unless of course you will always have 200 items.

So use:

List<String> mCountryList = new ArrayList<String>();

instead of

String[] mCountryList=new String[200];

and then to populate it, something like this:

mCountryList.add("Your String");

I think your error is in code mCountryList[2]=null; Even though this is allowed, it is not a good idea to initialize a string to null, certainly not common in Java. Only objects can be set to null.

Suggestion : mCountryList[2]= ""; Set to a blank string instead.

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

上一篇: Firebaselistadapter错误

下一篇: Android listView适配器错误