Я пытался показать alertdialog
в некоторых условиях (в кодах это MyIfStatement).
Я сделал MyDialog
в onCreate
и пытался показать onClick
при нажатии кнопки подтверждения в определенномусловие.
Я получил ошибку с именем has leaked window DecorView that was originally added here
.
Я обнаружил, что мы должны закрыть диалоговое окно до окончания действия.
Не могли бы вы сказать мне, в чем заключается проблема моегокоды?
Мой код указан ниже.
public class BaseWidgetConfigureActivity extends AppCompatActivity
implements View.OnClickListener, SeekBar.OnSeekBarChangeListener{
private static final String TAG = BaseWidgetConfigureActivity.class.getSimpleName();
AlertDialog MyDialog;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ConfirmButton = findViewById(R.id.widget_confirm_button);
CancelButton = findViewById(R.id.widget_cancel_button);
ConfirmButton.setOnClickListener(this);
CancelButton.setOnClickListener(this);
MyDialog = new AlertDialog.Builder(BaseWidgetConfigureActivity.this)
.setMessage("My message.")
.setPositiveButton("Edit", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
finish();
}
})
.create();
}
@Override
protected void onResume() {
super.onResume();
}
public void onClick(View view) {
switch (view.getId()){
case R.id.confirm_button:
if (MyIfStatement){
MyDialog.show();
}
break;
case R.id.cancel_button:
finish();
break;
default:
finish();
}
}
@Override
public void onPause() {
super.onPause();
}
}
В положительной кнопке onClick
, я попытался
1)
onStop();
dialog.dismiss();
startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
finish();
2)
onPause();
dialog.dismiss();
startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
finish();
3)
dialog.dismiss();
startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
finish();
В отрицательной кнопке onClick
, я пытался
1)
dialog.cancel();
finish();
2)
dialog.cancel();
и т. Д.