2011-11-14 29 views
0

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

我的警告框创建代码:

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

请帮助我。

+3

有必要,这是一个AlertDialog?为什么不作为ProgressDialog实现?为什么OK按钮必须存在? – stefan

+0

我必须禁用确定按钮,直到后台进程完成。之后启用确定按钮,然后用户与应用程序进行交互。我需要它在警戒框。请帮帮我。 –

+0

相反,我宁愿显示进度条,一旦你完成下载过程,只需显示确定按钮的警报框。我相信这曾经是最好的做法,而不是你之前评论过的。 –

回答

1
在AlertDialog

使用getButton()来获取潜在的OK按钮保持

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

我得到崩溃的应用程序按钮mOkButton = helpDialog1.getButton(); mOkButton.setEnabled(false)位于helpDialog1 = helpBuilder1.create()之上;但helpDialog1 = helpBuilder1.create();在Button mOkButton不显示按钮之前。请更新有问题的XML。 –

0

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

创建一个自定义AlertDialog布局您的按钮,它与

LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE); 
View view = inflater.inflate(R.layout.yourlayout,(ViewGroup) findViewById(R.id.yourLayoutsOuterLinearLayout)); 
builder.setView(view); 

布局添加到您的AlertDialog可以看看这样的事情:

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