android列表视图中的字体真棒无法正常工作

vli*_*o20 4 java fonts android listview

所以我创建了这个自定义数组适配器:

        View row = convertView;
        ViewHolder holder;
        iconFont = Typeface.createFromAsset(activity.getAssets(), "fontawesome-webfont.ttf" );

        if (row == null) 
        {
            LayoutInflater layoutInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            row = layoutInflater.inflate(R.layout.event_type_list_row, null);
            holder = new ViewHolder();
            holder.icon = (TextView) row.findViewById(R.id.EventTypeListRow_icon_EditText);
            holder.name = (TextView) row.findViewById(R.id.EventTypeListRow_name_EditText);
            row.setTag(holder);
        }
        else
        {
            holder = (ViewHolder) row.getTag();
        }
        final EventTypeDataObj eventType = data.get(position);
        if (eventType != null) 
        {
            //holder.icon.setText(eventType.getIconCode()); f02c;
            holder.icon.setText("");
            holder.icon.setTypeface(iconFont);
            holder.name.setText("");
            holder.name.setTypeface(iconFont);
        }

        return row;
Run Code Online (Sandbox Code Playgroud)

我没有看到我的缺点,我看到列表视图中的代码如下: 在此输入图像描述

注意:其他字体(适用于字母而非图标).在工作中.

有没有理由它不起作用?

njz*_*zk2 7


Run Code Online (Sandbox Code Playgroud)

显然是一个XML实体.我没有理由相信android应该这样对待,而不是一个普通的字符串.鉴于你的截图,显然它确实如此.

如果要通过给出unicode值来指定字符,java中的正确用法是\u这样的:

holder.name.setText("\uf001");
Run Code Online (Sandbox Code Playgroud)

编辑

如果输入是"&#f001;"和不能被替换"\uf001"为用于Html.fromHtml解码String中的XML实体,也是可能的:

holder.name.setText(Html.fromHtml("&#f001;"));
Run Code Online (Sandbox Code Playgroud)