как отключить кнопку ОК в окне оповещения в Android - PullRequest
0 голосов
/ 14 ноября 2011

в моем приложении я покажу окно с сообщением и кнопкой ОК. в фоновом режиме я нажимаю на API и сохраняю его в базу данных (я делаю это в Async Task) я хочу отключить кнопку ОК, пока не завершится фоновый процесс. После завершения фонового процесса мне нужно активировать кнопку ОК в окне предупреждения.

код создания моего окна оповещения:

    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 ]

1 голос
/ 14 ноября 2011

Используйте getButton () на AlertDialog, чтобы заполучить нижележащую кнопку ОК

Button mOkButton = helpDialog1.getButton();
mOkButton.setEnabled(false)`
0 голосов
/ 14 ноября 2011

к сожалению, нет никакого прямого пути 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>
...