如何在android中禁用警报框中的ok按钮
在我的应用程序中,我将显示一个带有消息和ok按钮的警报框。在后台,我点击了一些api并将其保存到数据库中(我在异步任务中完成)。我的要求是我想禁用ok按钮,直到后台处理完成。后台处理完成后,我需要启用警报框中的ok按钮 我的警报框创建代码:如何在android中禁用警报框中的ok按钮,android,android-alertdialog,Android,Android Alertdialog,在我的应用程序中,我将显示一个带有消息和ok按钮的警报框。在后台,我点击了一些api并将其保存到数据库中(我在异步任务中完成)。我的要求是我想禁用ok按钮,直到后台处理完成。后台处理完成后,我需要启用警报框中的ok按钮 我的警报框创建代码: helpBuilder1 = new AlertDialog.Builder(Home.this); helpBuilder1.setTitle("Welcome"); helpBuilder1.setMessage("Thank y
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上的getButton()来获取底层的ok按钮
Button mOkButton = helpDialog1.getButton();
mOkButton.setEnabled(false)`
不幸的是,似乎没有直接的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>
它是否必须是一个AlertDialog?为什么不作为ProgressDialog实现呢?为什么必须存在OK按钮?我必须禁用OK按钮,直到后台进程完成。启用ok按钮后,用户将与应用程序交互。我需要把它放在警报箱里。请帮助我。相反,我更喜欢显示进度条,一旦你们完成下载过程,只需用“确定”按钮显示警报框。我确信这一次是最佳实践,而不是您之前的评论;setEnabled(false)位于helpDialog1=helpBuilder1.create()上方;但是helpDialog1=helpBuilder1.create();是在按钮之前MOKBUTON是不显示按钮的。请更新有问题的xml。