2011-02-04 143 views
0

幫助....我有一個問題...這裏是鱈魚......安卓:警告對話框

@Override 
protected Dialog onCreateDialog(int id) { 
switch (id) { 
case IDD_COLOR: 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle("Pick a color"); 
    ListView listView = new ListView (this); 
    builder.setInverseBackgroundForced(true); 
    listView.setAdapter(new ArrayAdapter(this, android.R.layout.select_dialog_multichoice, mColors)); 

    listView.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 
      switch (arg2) { 
      case 0: 
       if (!((CheckedTextView)arg0.getChildAt(arg2)).isChecked()) 
       { 
        ((CheckedTextView)arg0.getChildAt(arg2)).setChecked(true); 
       } else 

        ((CheckedTextView)arg0.getChildAt(arg2)).setChecked(false); 

      break; 
      case 1: 
       if (!((CheckedTextView)arg0.getChildAt(arg2)).isChecked()) 
       { 
        ((CheckedTextView)arg0.getChildAt(arg2)).setChecked(true); 
       } else 

        ((CheckedTextView)arg0.getChildAt(arg2)).setChecked(false); 

       break; 
      case 2: 
       if (!((CheckedTextView)arg0.getChildAt(arg2)).isChecked()) 
       { 
        ((CheckedTextView)arg0.getChildAt(arg2)).setChecked(true); 
       } else 

        ((CheckedTextView)arg0.getChildAt(arg2)).setChecked(false); 

       break; 
      } 

     } 
    }); 
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 

     } 
    }); 
    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 

      } 
    }); 

    builder.setView(listView); 
    return builder.create(); 
default: 
return null; 
} 

如何取消什麼點擊按下取消按鈕?因爲它始終保存點擊的內容。

回答

0

Jony,

這是否適合您的情況?

builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int id) { 
      ((CheckedTextView)arg0.getChildAt(arg2)).setChecked(false) 
      dialog.cancel(); 
     } 
}); 

我沒有測試它,但它似乎如果你只是取消調用dialog.cancel();它不應該拿出檢查前的複選框。

+0

)))這是一個錯誤的答案...什麼是你的方法arg0? )) – Jim 2011-02-04 21:18:14