1
votes

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)

2
can you post the whole error trace? - Orhan Obut
@nr4bt java.lang.NullPointerException - behzad razzaqi
Show the whole stacktrace, please please, pretty please. Don't make it difficult for us. - ci_
@behzadrazzaqi we cannot even know where is the line you are getting the error. Extend your question by adding expanded stacktrace and showing the line you are getting the error - hrskrs
also you have code mentioning mCountryList, then further down it's mCountr, what is it now? And "null" is a String, that won't give you an NPE. - ci_

2 Answers

1
votes

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");
1
votes

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.