0

我有一个按钮,单击时应显示一个仅包含“确定”按钮的警报对话框,单击时应转到另一个活动。但是这个对话框会出现几秒钟并进入活动而不让我单击或确认它。这是我用过的代码

   public void onClick(View v) {

    AlertDialog.Builder alertbox = new AlertDialog.Builder(InsertData.this);

    alertbox.setMessage("Object Location Stored!");

    alertbox.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface arg0, int arg1) {
                // the button was clicked

                Intent a = new Intent(getApplicationContext(),MainMenu.class);
                startActivity(a);
            }

        });
        alertbox.show();

    }

谁能帮我解决这个问题?谢谢你的建议。。

4

2 回答 2

2

我不明白问题是什么。几天前,我尝试自己包含一个 AlertDialog。我看到有很多不推荐使用的方法。我最终使用了下面的代码。如果你喜欢试试这个

AlertDialog ad=new AlertDialog.Builder(this).create();
        ad.setTitle(R.string.app_name);
        ad.setMessage("MESSAGE");
        ad.setButton(AlertDialog.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                dialog.cancel();
            }}); 
        ad.show();
于 2012-06-20T18:25:18.400 回答
0

这是一个想法,让我们看看您的 alertDialogs onClick 是否被调用。这将告诉您问题出在警报对话框还是其他问题上。您应该能够将其复制并粘贴到您的应用程序中,然后只需调用 showAlertDialog(); 从你想要的任何地方。发布调用 alertDialog 的代码。

public void showAlertDialog()
{

         AlertDialog.Builder alertDialogBuilder = new AlertDialog
            .Builder(YourActivity.this);
     alertDialogBuilder.setTitle("Look at me!");
     alertDialogBuilder
            .setMessage("Im an alert dialog")
            .setCancelable(true)
            .setNegativeButton("Okay",new DialogInterface.OnClickListener() 
            {
                public void onClick(DialogInterface dialog,int id) 
                {

                    Toast.makeText(YourActivity.this, "Alert dialog onClick",   
                                    Toast.LENGTH_SHORT).show();   

                    dialog.dismiss();

                }
            }
        );

    AlertDialog alertDialog = alertDialogBuilder.create();
    alertDialog.show();
}
于 2012-06-22T00:47:44.850 回答