2011-02-04 11 views
0
@Override 
protected Dialog onCreateDialog (int id) { 

     AlertDialog.Builder builder = new AlertDialog.Builder(this);  
     builder.setTitle(R.string.instant_alert_screen_title); 
     builder.setInverseBackgroundForced(true); 
     ListView aa = new ListView(this);  
     aa.setAdapter(new IconicAdapter()); 
     aa.setOnItemClickListener(new OnItemClickListener() { 

      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 

       switch (arg2) { 
       case 0: 
       ...... 
       break; 
       case 1: 
       ...... 
       break; 
       case 2: 
       ...... 
       break; 

     builder.setView(aa); 
     builder.setPositiveButton("Done", new OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
       dialog.cancel();  
      } 
     }); 
     builder.setNegativeButton("Cancel", new OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
      dialog.cancel();  

      } 
     }); 
    return builder.create(); 

[OK]をguys..Iが正のボタンリスナー上で、私は2番目のアイテムを見つけてチェックすることができますどのように ...私は、ダイアログ3 CheckedTextViewに設定AlertDialog ..In Adapterを持っていることが確認されますか、ない?アンドロイド:警告ダイアログ

いけない、このように行うために私をお勧め:

CheckedTextView a = (CheckedTextView)findViewById(R.id.text) 
    boolean b = a.isChecked(); 

私はonClick(DialogInterface dialog, int which)にこのダイアログインタフェースを使用する必要がある...は本当のことですか?

+2

申し訳ありませんが、私は質問を理解していません。言い直しを検討してください。 – user432209

+0

私はあなたの質問を編集しようとしていましたが、あなたが何を求めているのか真剣には分かりません。 –

答えて

0

Doyouは、ダイアログの2番目の項目を見つけることを意味しますか?ダイアログに追加するときは、その参照を保存し、その参照をリスナーで使用します。 (それはローカル変数の場合は、OnClickListener内部クラスでそれを使用することfinalを宣言する必要があります。)あなたは

CheckedTextView a = (CheckedTextView) dialog.findViewById(R.id.text); 
0
にそれを変更した場合も、あなたは私たちがお勧めしたくないコードはうまくいくかもしれません

それはあなたが追加のカスタマイズを必要としない場合は少し良くあなたしている目的を果たすかもしれないが、代わりにこれを使用してみてください:

class ClickListener implements DialogInterface.OnClickListener { 
    public void onClick(DialogInterface dialog, int itemSelectedPos) { 
     switch(itemSelectedPos) { ... } 
    } 
} 

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setTitle("Title..."); 
builder.setSingleChoiceItems(new String[] { "Item1", "Item2" }, -1, new ClickListener()); 

必要な場合にも、あなたのアダプタに文字列配列を置き換えることができます。