Android显示ProgressDialog onClick的AlertDialog

时间:2012-12-07 02:35:30

标签: android alertdialog progressdialog onclicklistener

我试图在AlertDialog的onClick事件中显示ProgressDialog,代码可以正常工作,但ProgressDialog似乎被卡在AlertDialog后面,这就失败了

public class MainActivity extends Activity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
        {
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Title").setMessage("Message").setPositiveButton("Yes", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {

                    ProgressDialog pd = ProgressDialog.show(MainActivity.this, "Title", "Text", true, false);

2 个答案:

答案 0 :(得分:0)

这种做法怎么样?

AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Title").setMessage("Progress?");
        builder.setPositiveButton("Yes", new OnClickListener() {

            @Override
            public void onClick(DialogInterface alertDialog, int which) {
                // TODO Auto-generated method stub
                alertDialog.dismiss();
                showProgressDlg();
            }
        });
        builder.show();

public void showProgressDlg()
    {
        ProgressDialog pDialog = new ProgressDialog(context);
        //All pd properties...
    }

答案 1 :(得分:0)

老帖子,但我今天早上得到了这个问题。

我试图把它放在this.runOnUiThread(...)但不起作用。 我尝试使用this / MyActivity.this的副本,但没有'。

技巧(我不明白原因):制作ProgressDialog类属性,不要从AlertDialog onClick调用的方法中定义它。

private ProgressDialog pDialog;

我的情况与你的情况完全一致,现在可行了。 也许它会帮助别人。