我有一个AlertDialog,其中包含一些输入文本框,如果某些事件迫使它们进入onSaveInstance,onResume事件中(如whatsapp弹出通知),则其内容将丢失,因此我必须保存它们并将其还原到onResume()。
作为某种原因的额外效果,如果我有一个带有正,负和中性按钮的对话框,则不会恢复负的对话框。
我尝试使用以下代码还原它,但是它不起作用。
在我的onSaveInstanceEvent上
if (input2 != null){
cadenaasalvar2 = input2.getText().toString();
if (input2.getVisibility()==View.VISIBLE)
{
input2visible=true;
}
else
{
input2visible=false;
}
}
代码可能看起来很奇怪,但要点是,如果input2可见,那么对话框中的否定按钮也将如此。
在我的onResume()事件中
if (input2 != null) {
input2.setText(cadenaasalvar2);
input2.setSelection(cadenaasalvar2.length());
if (input2visible) {
Button button2 = ((AlertDialog) dialog1).getButton(AlertDialog.BUTTON_NEGATIVE);
String dsfds=button2.getText().toString();
button2.setVisibility(View.VISIBLE);
}
}
最奇怪的是,该程序似乎“知道”该按钮存在,我在dsfds中得到了相应的按钮文本,但是即使我明确告诉它显示它只是不显示,即使它执行button2.setVisibility(View.VISIBLE)指令。
会发生什么导致按钮不显示?
PD:dialog1确实显示在我的应用程序中,除了该按钮外,其他所有内容,我想如果错误在其中显示为初始状态,就不会显示该input2文本框,因为该文本框直到执行某些操作才显示通过AlertDialog执行。