Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 警报对话框don';关不上_Android_Android Alertdialog - Fatal编程技术网

Android 警报对话框don';关不上

Android 警报对话框don';关不上,android,android-alertdialog,Android,Android Alertdialog,我有个问题。在我的活动中,我有一个按钮,当我单击它时,我调用一个方法。这个方法显示一个带有listview的警报对话框,我想保存这个项目,点击一个变量,然后我想关闭这个方法,但是它没有关闭!!!为什么?我发布了方法的代码。我的日志没有给我任何错误。有人能帮我吗??请 private void getValuta() { AlertDialog.Builder miaAlert = new AlertDialog.Builder(this); final ListView lV = new L

我有个问题。在我的活动中,我有一个按钮,当我单击它时,我调用一个方法。这个方法显示一个带有listview的警报对话框,我想保存这个项目,点击一个变量,然后我想关闭这个方法,但是它没有关闭!!!为什么?我发布了方法的代码。我的日志没有给我任何错误。有人能帮我吗??请

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();}
private void getValuta(){
AlertDialog.Builder miaAlert=新建AlertDialog.Builder(此);
最终ListView lV=新ListView(本);
光标c=null;
miaAlert.setTitle(“选择值”);
c=vdb.FetchValueListView(“0”);
开始管理光标(c);
SimpleCrsorAdapter=新的SimpleCrsorAdapter(此,
android.R.layout.simple\u list\u item\u 1,
C
新字符串[]{
ValuteDb.ValuteMetaData.VALUTE_NAME_KEY},
新的int[]{android.R.id.text1});
停止管理光标(c);
低压设置适配器(适配器);
miaAlert.setView(lV);
miaAlert.setCancelable(false);
lV.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、,
内部位置,长id){
String riga=String.valueOf(id);
字符串confr=vdb.getRecord(riga,2);
System.out.println(“position=“+position+”/id=“+id+”/nome=“+confr”);
新值=vdb.getRecord(riga,2);
listdb.update(“9”,“Valuta”,new_Valuta,“2”);
c_list.requery();
返回;
}
});
AlertDialog alert=miaAlert.create();
alert.show();}

您不需要做任何事情来关闭对话框。如果设置按钮,默认行为是单击时关闭对话框,但在这种情况下,您使用的是带有自定义侦听器的自定义视图


您可以通过调用
alert.disease()显式关闭对话框

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

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

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();
AlertDialog.Builder miaAlert=新建AlertDialog.Builder(此);
最终ListView lV=新ListView(本);
miaAlert.setTitle(“选择值”);
miaAlert.setView(lV);
miaAlert.setCancelable(false);
final AlertDialog alert=miaAlert.create();
lV.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、,
内部位置,长id){
String riga=String.valueOf(id);
字符串confr=vdb.getRecord(riga,2);
System.out.println(“position=“+position+”/id=“+id+”/nome=“+confr”);
新值=vdb.getRecord(riga,2);
listdb.update(“9”,“Valuta”,new_Valuta,“2”);
c_list.requery();
警惕。解散();
}
});
alert.show();

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

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

可能重复的问题,请不要发布重复的问题。哦,我想你想关闭对话框,而不是方法。这是我想要的。谢谢