2

AlertDialog 总是显示为空,这是当我传递字符串数组而不是适配器时的代码,但适配器是空的。我错过了什么吗?

.Builder builder =   new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Show dialog");
int selected =0; // select at 0


SimpleCursorAdapter Adapter =new SimpleCursorAdapter(MainActivity.this, android.R.layout.simple_list_item_single_choice,
            null, new String[]{"title","title2"}, new int[]{android.R.id.text1});

builder.setSingleChoiceItems(
        Adapter,
        selected ,
        new DialogInterface.OnClickListener() {

    @Override
    public void onClick(
            DialogInterface dialog,
            int which) {

        Toast.makeText(
                MainActivity.this,
                "Select "+choiceList[which],
                Toast.LENGTH_SHORT
                ).show();
    }
});
AlertDialog alert = builder.create();
alert.show();   
4

1 回答 1

0

这么晚才回复很抱歉。我在面临类似问题时发现了您的问题。如果您实际上没有从数据库中获取数据,为什么还要传递 cursorAdapter?我会简单地创建一个新的 ArrayAdapter。你试过吗?

ArrayAdapter<String> Adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.select_dialog_singlechoice, new String[]{"title","title2"});

请注意,我使用的是“android.R.layout.select_dialog_singlechoice”而不是“android.R.layout.simple_list_item_single_choice”,因为您的列表位于 AlertDialog 中。希望这可以帮助!

汤姆。

于 2013-09-24T21:07:10.303 回答