尝试在空对象引用上调用虚方法Spinner.setAdapter(SpinnerAdapter)[duplicate]

问题描述 投票:-2回答:2

这个问题在这里已有答案:

首先我试图将微调器显示到一个对话框中,我通过getData对象将数据从数据库调用到ArrayList中,一切正常但在最后一步中,当我尝试将适配器分配给微调器时,我得到了上述错误这是我的代码:

    public class ViewDialogCities {
    public void showDialog(int layoutID , Activity activity){

        final Dialog dialog = new Dialog(activity);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.setCancelable(false);
        dialog.setContentView(layoutID);
        Button OkButton =  dialog.findViewById(R.id.btn_dialog_ddl_ok);
        Button CloseDialogButton =  dialog.findViewById(R.id.btn_dialog_ddl_cancel);
        Spinner spn_ddl_dialog_list = findViewById(R.id.spn_ddl_dialog_list);


        //Define data object
        final GetData getData = new GetData();
        ArrayList<String> getListOf;


        //Retrieve data from data object and store it an ArrayList
        getListOf = getData.getListOf("R");

        //ArrayList to ArrayAdapter
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter
                ( HomeActivity.this, android.R.layout.simple_spinner_dropdown_item, getListOf);

        arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // Assign ArrayAdapter to spinner
        spn_ddl_dialog_list.setAdapter(arrayAdapter);

        CloseDialogButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.dismiss();
            }
        });

        OkButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });

        dialog.show();
    }
}
android nullpointerexception
2个回答
2
投票

你在getListOf得到零。确保列表不为空。也像这样使用。

Spinner spn_ddl_dialog_list = dialog.findViewById(R.id.spn_ddl_dialog_list);

1
投票

您创建的微调器是对话框的视图。

试试这个,

Spinner spn_ddl_dialog_list = dialog .findViewById(R.id.spn_ddl_dialog_list);

在这个中,微调器将由微调器视图引用。

© www.soinside.com 2019 - 2024. All rights reserved.