使用ArrayList加载Spinner会导致无法启动活动ComponentInfo和应用程序崩溃

问题描述 投票:1回答:1

我以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();
        }   
}
java android nullpointerexception android-resources
1个回答
2
投票

你的微调id是spin_type,而不是vehicle_type。很可能它是空的。使用

Spinner spinner = (Spinner) findViewById(R.id.spin_type);
© www.soinside.com 2019 - 2024. All rights reserved.