我定义了这个字符串数组:
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
我认为String数组mCountryList
可以有空值。例如:
mCountryList[0]="x";
mCountryList[1]="x";
mCountryList[2]=null;
我该如何解决这个问题?
我得到的堆栈跟踪是:
2459-2459 / com.example.behzad.behmytour E / AndroidRuntime:FATAL EXCEPTION:main 处理: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) 在android.widget.ListView.fillFromTop(ListView.java:752) 在android.widget.ListView.layoutChildren(ListView.java:1630) 在android.widget.AbsListView.onLayout(AbsListView.java:2091) 在android.view.View.layout(View.java:14817) 在android.view.ViewGroup.layout(ViewGroup.java:4631)
答案 0 :(得分:1)
看起来您的某件商品是null
,就像您可能想到的那样,但在您的问题中没有表达易于理解。解决方案是,确保它没有。
NullPointerException at android widget ArrayAdapter createViewFromResource
您可能希望使用List
而不是数组,然后只填充尽可能多的项目,而不是拥有包含200个项目的静态数组,除非您当然总是有200个项目。< / p>
所以使用:
List<String> mCountryList = new ArrayList<String>();
而不是
String[] mCountryList=new String[200];
然后填充它,如下所示:
mCountryList.add("Your String");
答案 1 :(得分:1)
我认为您的错误在代码mCountryList[2]=null;
中即使允许这样做,将字符串初始化为null也不是一个好主意,在Java中肯定不常见。只能将对象设置为null。
建议:mCountryList[2]= "";
改为设置为空白字符串。