簡體   English   中英

自定義警報對話框無法關閉

[英]Custom alert dialog not dismiss

我想實現對R.id.textSizeA按鈕的關閉,但是它不起作用。 有人可以幫忙嗎? 自定義警報對話框具有許多用於其設置的單選按鈕。 當我按下單選按鈕時,它應該關閉對話框,但是我不知道該怎么辦。

 final LinearLayout textSizeBtn = (LinearLayout) findViewById(R.id.text_size_btn);
    textSizeBtn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View view) {

            final AlertDialog.Builder alertDialog = new AlertDialog.Builder(view.getContext());

            final LayoutInflater layoutInflater = LayoutInflater.from(view.getContext());
            final View view1 = layoutInflater.inflate(R.layout.font_size_dialog, null);
            alertDialog.setView(view1);


            RadioGroup radioGroup = (RadioGroup) view1.findViewById(R.id.textSizeChanGroup);
            radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {

                    TextView sampleText = (TextView) view1.findViewById(R.id.texSize_sampleText);

                    if (checkedId == R.id.textSizeA) {
                        String size = String.valueOf(12);
                        sampleText.setTextSize(Float.parseFloat(size));
                        textSizeHint.setText(size);
                        SharedPreferences.Editor editor = view.getContext().getSharedPreferences(String.valueOf(R.string.textSizePref), MODE_PRIVATE).edit();
                        editor.putString("textSizeA", size);
                        editor.clear();
                        editor.apply();

                    } else if (checkedId == R.id.textSizeB) {
                        String size = String.valueOf(13);
                        sampleText.setTextSize(Float.parseFloat(size));
                        textSizeHint.setText(size);
                        SharedPreferences.Editor editor = view.getContext().getSharedPreferences(String.valueOf(R.string.textSizePref), MODE_PRIVATE).edit();
                        editor.putString("textSizeA", size);
                        editor.clear();
                        editor.apply();

                    }
                }
            });
            alertDialog.create().show();

        }
          });

嘗試這個

更改

alertDialog.create().show();

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

現在使用alert來消除警報,如下所示

if (checkedId == R.id.textSizeA) {
    String size = String.valueOf(12);
    ...
    ...
    editor.apply();
    alert.dismiss(); // add this
} else if
...
...

替換此行

final AlertDialog.Builder alertDialog = new AlertDialog.Builder(view.getContext());

final AlertDialog alertDialog = new AlertDialog.Builder(view.getContext());

和這個

alertDialog.create().show();

alertDialog.show(); 並調用alertDialog.dismiss(); 每當您想關閉警報對話框時

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM