【问题标题】:When I click an item of ListView, I want to dismiss AlertDialog当我单击 ListView 的一项时,我想关闭 AlertDialog
【发布时间】:2013-02-03 08:36:24
【问题描述】:

我是安卓应用开发者。 我想显示 AlertDialog 包括 Listview。

当我单击 ListView 的一个项目时,我想关闭 AlertDialog。但是,(1)代码不起作用。

我该怎么办?

请告诉我一些建议。预谢谢!

final String[] items = new String[101] ;

for(int m = 0 ; m < items.length ; m++)
{
    items[m] = Integer.toString(m) ;  
}

Dialog dialog = new Dialog(this);
AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setTitle("sample list title "); 

ListView modeList = new ListView(this); 

ArrayAdapter<String> modeAdapter = new ArrayAdapter<String>(this, 
        android.R.layout.simple_list_item_single_choice, android.R.id.text1, items);

modeList.setAdapter(modeAdapter);
modeList.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 

modeList.setOnItemClickListener(new OnItemClickListener()
{
        public void onItemClick(AdapterView<?> arg0, View v, int position, long id)
        {
            makeToast("..test   " + position  );  
            // dialog.dismiss(); ----------------------------(1) 

        }
 }); 

builder.setView(modeList);

dialog = builder.create();
dialog.show(); 

【问题讨论】:

  • 但是,(1)代码不起作用。你能解释一下吗?如果您遇到任何错误,请添加带有问题的日志
  • 使用 dialog.cancel(); // 关闭对话框
  • @hyekyung:请添加您的 simple_list_item_single_choice xml 文件,toast 也会被触发吗?

标签: android listview android-alertdialog onitemclick


【解决方案1】:

在下面使用:

        AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
        builder.setTitle(getText(R.string.title));
        builder.setSingleChoiceItems(list, position, new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int position)
            {
                // do something
                dialog.dismiss();
            }
        });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 2018-04-27
    • 2013-02-10
    • 2023-04-11
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    相关资源
    最近更新 更多