【问题标题】:Alert Dialog don't close警报对话框不关闭
【发布时间】:2012-04-05 13:44:54
【问题描述】:

我有问题。在我的活动中,我有一个按钮,当我单击它时,我会调用一个方法。此方法向我显示带有列表视图的警报对话框,我想将项目单击保存到变量,然后我想关闭该方法但它没有关闭!为什么??我发布了该方法的代码。我的 logcat 没有给我任何错误。谁能帮我??请

private void getValuta() {

AlertDialog.Builder miaAlert = new AlertDialog.Builder(this);

final ListView lV = new ListView(this);

Cursor c = null;

miaAlert.setTitle("Choose Valuta");

c = vdb.fetchValuteListView("0");

startManagingCursor(c);


SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
        android.R.layout.simple_list_item_1, 
        c, 
        new String[] {
                ValuteDb.ValuteMetaData.VALUTE_NAME_KEY}, 
        new int[] { android.R.id.text1});

stopManagingCursor(c);

lV.setAdapter(adapter);

miaAlert.setView(lV);

miaAlert.setCancelable(false);

lV.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View v,
            int position, long id) {

        String riga = String.valueOf(id);
        String confr = vdb.getRecord(riga,2);
        System.out.println("position= " + position + "/id= " + id+"/nome= "+confr);
        new_valuta = vdb.getRecord(riga,2);
        listdb.update("9", "Valuta", new_valuta, "2");
        c_list.requery();

        return;

    }
});

AlertDialog alert = miaAlert.create();

alert.show();}

【问题讨论】:

  • method doesn't close的可能重复
  • 请不要发布重复的问题。哦,我假设你想关闭对话框,而不是方法

标签: android android-alertdialog


【解决方案1】:

您缺少的是实际关闭对话框的调用:

AlertDialog.Builder miaAlert = new AlertDialog.Builder(this);

final ListView lV = new ListView(this);
miaAlert.setTitle("Choose Valuta");
miaAlert.setView(lV);
miaAlert.setCancelable(false);

final AlertDialog alert = miaAlert.create();

lV.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View v,
            int position, long id) {

        String riga = String.valueOf(id);
        String confr = vdb.getRecord(riga,2);
        System.out.println("position= " + position + "/id= " + id+"/nome= "+confr);
        new_valuta = vdb.getRecord(riga,2);
        listdb.update("9", "Valuta", new_valuta, "2");
        c_list.requery();

        alert.dismiss();

    }
});

alert.show();

当然,这是对光标管理代码的补充。

【讨论】:

  • 这就是我要找的。谢谢!!
【解决方案2】:

我认为您必须在 onItemClick(...) 方法中调用 alert.dismiss()

【讨论】:

    【解决方案3】:

    您无需执行任何操作来关闭对话框。如果您设置按钮,默认行为是在单击时关闭对话框,但在这种情况下,您使用的是带有自定义 OnItemClickListener 的自定义视图。

    您可以通过在onItemClick() 方法中调用alert.dismiss(); 来显式关闭对话框。

    【讨论】:

      【解决方案4】:

      使用 alert.dismiss() 关闭对话框

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-11
        • 1970-01-01
        • 2015-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多