1

私は問題があります。私のアクティビティにはボタンがあり、それをクリックするとメソッドが呼び出されます。このメソッドは、リストビューを含む警告ダイアログを表示し、アイテムのクリックを変数に保存してから、メソッドを閉じたいのですが、閉じません!!! どうして??メソッドのコードを投稿します。私の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();}
4

4 に答える 4

2

あなたが見逃しているのは、実際にダイアログを閉じるための呼び出しです:

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();

もちろん、これは Cursor 管理コードに追加されます。

于 2012-04-04T13:18:47.997 に答える
1

alert.dismiss()メソッド内で呼び出す必要があると思いますonItemClick(...)

于 2012-04-04T13:18:19.540 に答える
0

ダイアログを閉じるには、alert.dismiss() を使用します。

于 2012-04-05T05:44:54.587 に答える
0

ダイアログを閉じるために何もしません。ボタンを設定すると、デフォルトの動作ではクリックするとダイアログが閉じますが、この場合は、カスタム OnItemClickListener を持つカスタム ビューを使用しています。

-メソッドを呼び出して、ダイアログを明示的に閉じることができalert.dismiss();ますonItemClick()

于 2012-04-04T13:18:05.767 に答える