在我的项目中,我使用一个简单的AlertDialog输入一些信息。我的问题是,当我打开此AlertDialog时,我会在很短的时间内闪烁,这是不正确的。我想知道我的错,最重要的是,什么应该是构建它的正确方法,因为我找不到周围的解决方案,即使没有改变对象的解决方案。但是我真的需要AlertDialog
private void insertNameManually(String hint, int mType) {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getContext());
LayoutInflater inflater = this.getLayoutInflater();
View dialogView = inflater.inflate(R.layout.alert_dialog, null);
EditText editText = dialogView.findViewById(R.id.editTextName);
Button clearTextButton = dialogView.findViewById(R.id.clearText);
Button confirmButton = dialogView.findViewById(R.id.confirmButton);
dialogBuilder.setView(dialogView);
dialogBuilder.setTitle(R.string.std_choose);
confirmButton.setOnClickListener(v -> {
name = editText.getText().toString();
name = hint;
new Handler().postDelayed(() -> {
MyFragment.this.type = mType;
Intent data = new Intent();
data.putExtra("type", type);
activity.setResult(Activity.RESULT_OK, data);
activity.finish();
}, 275);
});
editText.setText(hint);
clearTextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.setText("");
}
});
AlertDialog alertDialog = dialogBuilder.create();
alertDialog.show();
}
解决方案:您可以尝试切换到DialogFragment
,以帮助消除闪烁。
提示:只是想通过查看您的代码在此处添加,而不是]
AlertDialog alertDialog = dialogBuilder.create();
alertDialog.show();
您可以这样做,将创建并显示警报对话框。
dialogBuilder.show();