【问题标题】:how to disable ok button in alert box in android如何在android的警报框中禁用确定按钮
【发布时间】:2011-11-14 08:01:59
【问题描述】:

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

我的警报框创建代码:

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

请帮帮我。

【问题讨论】:

  • 一定是AlertDialog吗?为什么不实现为 ProgressDialog?为什么必须存在 OK 按钮?
  • 我必须禁用确定按钮,直到后台进程完成。启用确定按钮后,用户与应用程序进行交互。我需要它在警报框中。请帮帮我。
  • 相反,我更喜欢显示进度条,一旦您完成下载过程,只需显示带有确定按钮的警报框。我确信这一次是最佳做法,而不是您之前评论过的。

标签: android android-alertdialog


【解决方案1】:

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

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

【讨论】:

  • 我的应用程序崩溃了 Button mOkButton = helpDialog1.getButton(); mOkButton.setEnabled(false) 上面是 helpDialog1 = helpBuilder1.create();但是 helpDialog1 = helpBuilder1.create();是之前的Button mOkButton 是不显示的按钮。请更新有问题的xml。
【解决方案2】:

不幸的是,似乎没有直接的 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    相关资源
    最近更新 更多