2 momo1199 Momo1199 于 2013.05.17 11:15 提问

点击按钮后显示AlertDialog

想用一个单选按钮显示对话框,但是点击按钮对话框却不显示。

代码如下,不知道哪里出现错误。

谢谢

public class MainPage extends Activity{
Button start;
private static final int DIALOG_SINGLE_CHOICE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mainpage);
    start = (Button) findViewById(R.id.start);
    start.setBackgroundResource(R.drawable.read);
    start.setOnClickListener(new View.OnClickListener() {
        @SuppressWarnings("deprecation")
        public void onClick(View v) {
            showDialog(DIALOG_SINGLE_CHOICE );
        }
    });
}
@Override
@Deprecated
protected Dialog onCreateDialog(int id) {
    id = DIALOG_SINGLE_CHOICE;
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Choose your option");
    builder.setSingleChoiceItems(R.array.Baani, 0, new OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
        }
    })
    .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {

                    /* User clicked Yes so do some stuff */
                }
            })
            .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {

                    /* User clicked No so do some stuff */
                }
            })
           .create();
    return super.onCreateDialog(id);
        }   
  }
}

3个回答

cj6585256
cj6585256   2013.05.17 16:54
已采纳
public class MainActivity extends Activity implements OnClickListener{
private Button button;
private static final int DIALOG_SINGLE_CHOICE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    button  = (Button) findViewById(R.id.button);
    button.setOnClickListener(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.button:
        showDialog(DIALOG_SINGLE_CHOICE);
        break;

    default:
        break;
    }
}

@Override
@Deprecated
protected Dialog onCreateDialog(int id) {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Choose your option");
    builder.setSingleChoiceItems(R.array.Baani, 0, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
        }

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

            /* User clicked Yes so do some stuff */
        }
    }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {

            /* User clicked No so do some stuff */
        }
    }).create().show();
    return super.onCreateDialog(id);
}

}

baimy1985
baimy1985   2013.05.17 12:19

Dialog只create();没有show()的动作吧

longhai326
longhai326   2013.05.17 15:06
start.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
           new AlertDialog.Builder(this)
        .setTitle("请选择!")
        .setMessage("确定退出吗?")
        .setPositiveButton("确定",
        new android.content.DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog,int which) {
            dialog.dismiss();
                                              }
                                              })
        .setNegativeButton("取消",
            new android.content.DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog,int which) {
                dialog.dismiss();
                                                   }
                        }).show();
        }
    });
suannai0314
suannai0314 帮你编辑了下代码的格式,更多markdown使用见:http://ask.csdn.net/pages/markdown
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
AlertDialog点击按钮确定或取消不消失
在Android开发中,AlertDialog的使用十分频繁的,有时候会碰到点击确定或取消后AlertDialog仍不消失的需求,但在Android的SDK中并没有给出接口来实现这一功能,故我们通过研究Android AlertDialog的源代码来通过反射进行修改来完成这一需求。 查看/core/java/android/app/Dialog.java的源代码: void d
AlertDialog 自定义布局点击按钮消失方法
Dialog是一个很常用的控件,特别是带自定义布局的Dialog,但是,作为刚接触Android的小白来说,在自定义取消按钮时,点击让Dialog消失,也是个曾经让我很头疼的问题,虽然问题很简单,但是也确实曾经让我走了不少弯路。。。悲伤。。。希望以后的小白可以很快的解决这个问题,少走弯路!!在这里贴上源码:final String[] fontvalue=new String[]{"不显示","只
AlertDialog点击按钮后对话框不消失的处理方法
我们在使用AlertDialog时,无论点击“确定”(PositiveButton)还是“取消”(NegativeButton),对话框都会消失,这其实是不合理的。如果遇到这种情况:AlertDialog里面有一个文本框,要求用户必须输入内容,但如果用户没有输入就点击了确定,这时对话框是不应该消失的,而是应该保留该对话框并提示用户必须输入文字。 解决办法: final AlertDia
AlertDialog点击按钮不消失
我有一个文本输入对话框,当我点击对话框上的“是”按钮,它会验证输入,然后关闭对话框。 但是,如果输入错误,我想停留在同一个对话框中.。 每一次,无论输入是什么,对话框应该自动关闭,当我点击“否”按钮。我怎么才能禁用这个?在网上找了很多,大部分都是修改布局,添加取消确定什么的,这样并不理想。现在有个好方案,记录下来先: //重写“确定”(AlertDialog.BUTTON_POSITIVE),截取监
Android中 Alertdialog对话框点击消失?
在开发的时候遇到一个问题,就是一触摸对话框边缘外部,对话框会自动消失。这个问题很纠结啊,查找了一下发现从Android 4.0开始,AlertDialog有了变化,就是在触摸对话框边缘外部,对话框会自动消失,查了源码,找到解决办法:          研究其父类时候发现,可以设置这么一条属性,在AlertDialog.Builder.create()之后才能调用这两个方法  
【Android】AlertDialog点击按钮后不自动关闭对话框
在android中当你点击了对话框的按钮以后,不管你是否调用了dismis()函数,系统本都会去调用这个函数并且关闭对话框,但是在有些程序中我们必须让对话框保持不消失,如何实现这样的功能呢,这就需要一中欺骗的机制也就是说 当我们点击了按钮以后 让系统以为对话框已经关闭了,这样他就不会再关闭了,
让AlertDialog在按钮被点击后不消失
让AlertDialog在按钮被点击后不消失【android搞死你】 在网上搜索了一下,发现有两种做法: 第一: 使用反射: 在你的setPositiveButton中添加: //用于不关闭对话框 try {  Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
android点击AlertDialog的button不退出对话框的方法
Android弹出对话框时,默认情况下无论点击哪个button,触发事件后对话框都会自动关闭。 可以利用反射机制,使触发按钮点击事件之后不退出对话框。 解决方法:在setButton的OnClickListener的OnClick里改变field,filed的改变对于该对象来说是全局的,所以想要关闭时也要添加代码。 不退出对话框: .setPositiveButton("开始
AlertDialog 点击按钮后不关闭的处理办法
AlertDialog 点击按钮后不关闭的处理办法 new AlertDialog.Builder( this ).setPositiveButton( new String( "确定" ), new DialogInterface.OnClickListener() { @Override public void onClick( D
Android的AlertDialog点击确认键dialog不消失
Dialog在Android开发过程中是一个常见的与用户交互的UI。 今天在使用AlertDialog的时候,遇到一个问题,就是需要对dialog里面的内容做判断,如果不满足条件的话,就让dialog不消失,继续对dialog里面的内容进行操作,网上找了一种方法,比较简单,就是通过反射给dialog的接口里面的方法发送一个假的提示,让dialog不至于消失,具体的请看源码。 Alert