AlertDialog-构建它的正确方法。现在眨眼并轻按打开

问题描述 投票:0回答:1

在我的项目中,我使用一个简单的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();
}
android android-alertdialog flicker
1个回答
0
投票

解决方案:您可以尝试切换到DialogFragment,以帮助消除闪烁。

提示:只是想通过查看您的代码在此处添加,而不是]

  AlertDialog alertDialog = dialogBuilder.create();
  alertDialog.show();

您可以这样做,将创建并显示警报对话框。

dialogBuilder.show();
© www.soinside.com 2019 - 2024. All rights reserved.