如何在android中的警告框中禁用ok按钮

时间:2011-11-14 08:01:59

标签: android android-alertdialog

在我的应用程序中,我将显示一个带有消息和确定按钮的警告框。在后台我打了一些api并将其保存到数据库中(我在异步任务中执行)。我的要求是我要禁用确定按钮,直到后台进程完成。完成后台处理后,我需要在警告框中启用ok按钮。

我的提示框创建代码:

    helpBuilder1 = new AlertDialog.Builder(Home.this);
    helpBuilder1.setTitle("Welcome");
    helpBuilder1.setMessage("Thank you for waiting while App Installs");

    mOkButton = helpDialog1.getButton(AlertDialog.BUTTON_POSITIVE);
    mOkButton.setEnabled(false);

    if(mOkButton.isEnabled()==false){
        Log.e("Home.java - ShowPopUp", "button is disablled");
        new First_Time_Sync().execute();
    }

    mOkButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            helpDialog1.dismiss();
            showSilde_show_PopUp();

        }
    });

    helpDialog1 = helpBuilder1.create();
    helpDialog1.show(); 

请帮帮我。

2 个答案:

答案 0 :(得分:1)

在AlertDialog上使用getButton()来获取底层的ok按钮

Button mOkButton = helpDialog1.getButton();
mOkButton.setEnabled(false)`

答案 1 :(得分:0)

不幸的是,似乎没有直接的API方式。然而,这是我更多自定义解决方案的想法:[输入时更新:Rajdeeps解决方案听起来合理,首先尝试;-)如果没有帮助,请试试这个。]

使用您的按钮创建自定义AlertDialog布局,并使用

将其添加到AlertDialog
LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.yourlayout,(ViewGroup) findViewById(R.id.yourLayoutsOuterLinearLayout));
builder.setView(view);

布局看起来像这样:

<LinearLayout
  android:id="@+id/yourLayoutsOuterLinearLayout"
  android:layout_height:...>
  <Button
    android:id="@+id/myButton"
    android:...>
  </Button>
</LinearLayout>