Я пытаюсь показать диалоговое окно с индикатором выполнения и сообщением о том, что «Bluetooth подключается». Я хочу изменить этот текст на «Bluetooth Connected», если соединение установлено успешно.
Однако после второго вызова диалогового окна с предупреждением появляется сообщение об ошибке
Указанный дочерний элемент уже есть родитель Сначала вы должны вызвать removeView () у родителя ребенка.
Я обнаружил несколько похожих проблем, но пока не смог найти решение.
Мой код :
Сначала я звоню
showProgressBar("Connecting to Bluetooth...");
Затем, основываясь на результате метода обратного вызова, я пытаюсь снова показать / обновить диалоговое окно с другим сообщением
@Override
/*
* Callback method that is triggered once we have a result about the bluetooth connection
* */
public void isBluetoothConnected(boolean isConnected)
{
if (isConnected)
{
showProgressBar("CONNECTED!");
}
else
{
showProgressBar("Bluetooth Not Connected");
}
}
И вот как я создаю диалоговое окно с предупреждением
public void showProgressBar(String loadingStatus)
{
activity.runOnUiThread(new Runnable()
{
@Override
public void run()
{
if (progressDialog!=null)
{
progressDialog.dismiss();
}
progressDialog = getDialogProgressBar(loadingStatus).create();
progressDialog.show();
}
});
}
public AlertDialog.Builder getDialogProgressBar(String loadingStatus)
{
ProgressBar progressBar = new ProgressBar(context);
if (builder == null)
{
builder = new AlertDialog.Builder(context);
builder.setCancelable(false);
builder.setMessage(loadingStatus);
builder.setNegativeButton("Cancel", null);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
progressBar.setLayoutParams(lp);
builder.setView(progressBar);
}
return builder;
}
Мой вопрос: при отображении диалогового окна с предупреждением, как я могу обновлять отображаемое сообщение каждый раз?