Android:警报对话框

时间:2011-02-04 16:52:30

标签: android

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

好的伙计......我有一个AlertDialog ..在Adapter我设置为对话框3 CheckedTextView ... 如何在正面按钮监听器上找到第二个项目并检查它是否已检查?

不要建议我这样做:

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

我需要使用onClick(DialogInterface dialog, int which)这个对话界面......是真的吗?

2 个答案:

答案 0 :(得分:0)

Doyou是否在对话框中找到第二项?将其添加到对话框时,保存对它的引用并在侦听器中使用该引用。 (如果它是局部变量,则需要声明它final以在OnClickListener内部类中使用它。)此外,如果您将其更改为

CheckedTextView a = (CheckedTextView) dialog.findViewById(R.id.text);

答案 1 :(得分: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());

如果需要,您也可以使用适配器替换字符串数组。