android – 为AlertDialog的MultiSelectItems设置自定义字体(字体)

android – 为AlertDialog的MultiSelectItems设置自定义字体(字体),第1张

概述我已经能够将自定义字体应用于Alert对话框的标题,如下所示: AlertDialog.Builder builder = new AlertDialog.Builder(this); TextView Mytitle = new TextView(this); Mytitle.setText("My Custom title"); Mytitle.setTextSize(20); M 我已经能够将自定义字体应用于Alert对话框的标题,如下所示:

AlertDialog.Builder builder = new AlertDialog.Builder(this); TextVIEw MyTitle = new TextVIEw(this); MyTitle.setText("My Custom Title");  MyTitle.setTextSize(20); MyTitle.setpadding(5,15,5,5); MyTitle.setGravity(Gravity.CENTER); MyTitle.setTypeface(Typeface.createFromAsset(this.getAssets(),"myFont.ttf")); builder.setCustomTitle(MyTitle);

警报对话框显示由下面一行填充的多选项目列表.

builder.setMultiChoiceItems(MyItems,MycheckedItems,MyDialog@R_404_6818@ener); //where MyItems is CharSequence[] Array,MycheckedItems => boolean[] array,//MyDialog@R_404_6818@ener => DialogInterface.OnMultiChoiceClick@R_404_6818@ener

我也希望将字体应用于这些多选项.我怎样才能做到这一点?可能吗?

解决方法 AlertDialog.Builder使用 AlertController.AlertParams构建对话框.我检查了AlertDialog.Builder #create()调用AlertController.AlertParams #application()如果设置了项目,则创建@R_404_6818@VIEw并分配适配器( AlertParams#createListView()).

我基于create@R_404_6818@VIEw源创建了自定义适配器并修改了androID单元格布局:

public static class TypefaceDialog extends DialogFragment {        private static final CharSequence[] items = {            "A","B","C","D","E","F","G"        };        private static final boolean[] checked = {            true,false,true,false        };        @OverrIDe        public Dialog onCreateDialog(Bundle savedInstanceState) {            final Typeface FontTypeface = Typeface.createFromAsset(getActivity().getAssets(),"Arial Bold.ttf");            listadapter adapter = new ArrayAdapter<CharSequence>(                    getActivity(),androID.R.layout.select_dialog_multichoice,androID.R.ID.text1,items) {                @OverrIDe                public VIEw getVIEw(final int position,VIEw convertVIEw,VIEwGroup parent) {                    VIEw vIEw = super.getVIEw(position,convertVIEw,parent);                    CheckedTextVIEw textVIEw = (CheckedTextVIEw)vIEw.findVIEwByID(androID.R.ID.text1);                    textVIEw.setChecked(checked[position]);                    textVIEw.setTypeface(FontTypeface);                    textVIEw.setonClick@R_404_6818@ener(new VIEw.OnClick@R_404_6818@ener() {                        @OverrIDe                        public voID onClick(VIEw v) {                            CheckedTextVIEw vIEw = (CheckedTextVIEw)v;                            vIEw.setChecked(!vIEw.isChecked());                            checked[position] = vIEw.isChecked();                        }                    });                    return vIEw;                }            };            return new AlertDialog.Builder(getActivity())            .setAdapter(adapter,null)            .setPositivebutton("OK",null)            .create();        }    }
总结

以上是内存溢出为你收集整理的android – 为AlertDialog的MultiSelectItems设置自定义字体(字体)全部内容,希望文章能够帮你解决android – 为AlertDialog的MultiSelectItems设置自定义字体(字体)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1121992.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存