Android Spinner setAdapter()对空对象引用异常

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

我的目标是动态地向微调器添加项目,我想在对话框(而不是活动类)中执行它但是我得到了像这样的java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference的异常

DisKapiList是我的列表,其中包含添加到微调器的项目。

这是我的代码;

spBBKapiNo = (Spinner)dialog.findViewById(UIUtils.getResourceId(wrapper.getmActiviy(), "spBBKapiNo", "id"));

disKapList = yapi.getNumaratajList();
    List <SpinnerObject> lables = getAllLabels();
    ArrayAdapter<SpinnerObject> dataAdapter = new ArrayAdapter<SpinnerObject>(wrapper.getmActiviy(),android.R.layout.simple_spinner_dropdown_item, lables);
    dataAdapter.setDropDownViewResource(UIUtils.getResourceId(wrapper.getmActiviy(), "spBBKapiNo", "id"));
    spBBKapiNo.setAdapter(dataAdapter);

getAllLabels()方法是;

public List <SpinnerObject> getAllLabels(){
    List < SpinnerObject > labels = new ArrayList < SpinnerObject > ();

    for (Numarataj object : disKapList) {
        labels.add ( new SpinnerObject ( object.getId() , object.getKapiNo() ));
    }

    return labels;
}

我布局中的微调器字段;

<Spinner
                android:id="@+id/spBBKapiNo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:entries="@array/empty_array"
                android:layout_marginLeft="30dp" />

编辑;

现在我可以在dilaog上看到我的SpinnerList但是当我单击微调器以查看其他选项时,程序关闭使用Resources $ NotFoundException:资源ID#0x7f0f0069类型#0x12无效。

android nullpointerexception android-widget android-spinner android-dialog
1个回答
0
投票

解决 !

List <SpinnerObject> lables = getAllLabels();
        ArrayAdapter<SpinnerObject> dataAdapter = new ArrayAdapter<SpinnerObject>(wrapper.getmActiviy(),android.R.layout.simple_spinner_dropdown_item, lables);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spBBKapiNo.setAdapter(dataAdapter);
© www.soinside.com 2019 - 2024. All rights reserved.