2011-02-04 144 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