2010-12-14 8 views
0

AlertDialog.Builderダイアログ= new AlertDialog.Builder(this) setOnItemClickListener()の下にdismiss()メソッドがありません。ダイアログは、onitemclickリスナー内でdismiss()しません。

特にこれは私のコードです。

AlertDialog.Builder dialog = new AlertDialog.Builder(getApplicationContext()); 
dialog.setTitle("TITLE"); 
dialog.setView(view); 
dialog.show(); 

listView.setOnItemClickListener(new OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> adapter, View view, int pos, 
     long id) { 
    dialog.dismiss() // dismiss is not there. 


    } 
}); 

ありがとう。

+0

ダイアログ変数がOnItemClickListenerの有効範囲外です。これを行うには、ダイアログをインスタンス変数にする必要があります。また、リストビュー内の項目がクリックされたときにダイアログが表示されていることを確認してください。 – Falmarri

+0

私はdialog.show()を呼び出しました。ダイアログが表示され、listViewにはすべて含めたいと思っています。そういう意味で私はダイアログが見えると確信しています。 –

+0

とダイアログが有効範囲外ではないので、私はダイアログを呼び出します。それはそのメソッドの束を示していますが、何らかの理由で却下はありません。 listviewの項目を押してダイアログを閉じる方法は何ですか? (ご協力いただきありがとうございます) –

答えて

3

これは、常にこれらのハンドラに何をすべきかです:

  • は、ダイアログを作成し、クラス/活動レベルで
  • をメンバ変数を持つダイアログを閉じクラス/活動でプライベートメソッドを作成します
  • あなたが作成している何
  • コールハンドラでは、このプライベートメソッド

は、ダイアログではありませんそれはDialogBu​​ilderです。次のように作成する必要があります。

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setCancelable(true); 
builder.setIcon(android.R.drawable.ic_dialog_alert); 
builder.setTitle("..."); 
builder.setMessage("message"); 
builder.setNegativeButton("OK", null); 
AlertDialog dlg = builder.create(); 
+0

AlertDialog.Builderダイアログ=新しいAlertDialog.Builder(これ)にはdismiss()がありません。そのメソッドはDialogInterfaceの一部です。作成したダイアログをDialogInterfaceにどのように接続できますか?解雇を使う私はあなたの方法を試みたが、まだそこにいなかった。 –

+0

私の更新を見てください。 – Aliostad

+0

うわあ。ありがとうございました、あなたのコードは非常にマイナーな変更で動作しました。私はAlertDialog dlgをfinalとして宣言しました。再度、感謝します。ところで、 "ali"と "ostad"の両方の言葉は私にはとてもよく知られています。 –

関連する問題