使用ArrayList加载Spinner会导致无法启动活动ComponentInfo和应用程序崩溃
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ArrayList加载Spinner会导致无法启动活动ComponentInfo和应用程序崩溃相关的知识,希望对你有一定的参考价值。
我以json
的形式从webservice带来了一些数据并转换为ArrayList
。但是当我用Spinner
将它加载到Adapter
时,它正在给Unable to start activity ComponentInfo...
和其他的execptions。我在下面发布我的代码。
<Spinner
android:id="@+id/spin_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/edittext" />
LoadViolationTypes()
方法:
public void LoadViolationTypes(){
AsyncSpinnerLoader asl = new AsyncSpinnerLoader();
asl.execute();
String res="";
try {
res = asl.get();
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ExecutionException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
ArrayList<String> itemsList = new ArrayList<String>();
try {
JSONArray array = new JSONArray(res);
for (int i=0; i < array.length(); i++) {
String s = (String) array.get(i);
itemsList.add(s);
}
Spinner spinner = (Spinner) findViewById(R.id.vehicle_type);
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, itemsList);
spinner.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
答案
你的微调id是spin_type
,而不是vehicle_type
。很可能它是空的。使用
Spinner spinner = (Spinner) findViewById(R.id.spin_type);
以上是关于使用ArrayList加载Spinner会导致无法启动活动ComponentInfo和应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章
为啥使用不同的 ArrayList 构造函数会导致内部数组的增长率不同?
将帮助文件加载到 FactoryBot 文件中会导致“无法加载此类文件”[重复]
转换 Arrays.asList 导致异常:java.util.Arrays$ArrayList 无法转换为 java.util.ArrayList