Java android列表视图中的字体不工作
因此,我创建了这个自定义阵列适配器:Java android列表视图中的字体不工作,java,android,listview,fonts,Java,Android,Listview,Fonts,因此,我创建了这个自定义阵列适配器: View row = convertView; ViewHolder holder; iconFont = Typeface.createFromAsset(activity.getAssets(), "fontawesome-webfont.ttf" ); if (row == null) { LayoutInflater layoutInflate
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;
我没有看到这些缺点,我在列表视图中看到了如下代码:
注意:其他字体(适用于字母而非图标)。我们正在工作
它不起作用的原因是什么?将字体awesome字符串放在
strings.xml
中,并使用getString(R.string.whatever)
引用它们。Android将为您处理Unicode格式

显然是一个XML实体。我没有理由相信android应该这样对待,而不是简单的字符串。从你的截图来看,显然是这样
如果要通过指定字符的unicode值来指定字符,java中的正确用法是\u
,如下所示:
holder.name.setText("\uf001");
编辑
如果您的输入是”f001;“
,并且不能被“\uf001”
替换,则也可以使用Html.fromHtml
解码字符串中的XML实体:
holder.name.setText(Html.fromHtml("&#f001;"));
当我在静态视图(不是listview行)中手动添加字符串时,我就是这样工作的,但我从数据库中获取此图标代码…使用HTML.fromHtml或其他东西?您能举个例子吗?或者您的字符串不应该是
“\uf001”
?我有当我这样做时holder.icon.setText(activity.getResources().getString(R.string.list_icon))代码>它工作得很好!也许我需要将字符串格式化为utf-8是的,因为string.xml是一个xml文件,xml解析解析xml实体,而textView没有。utf-8与此无关,这些是unicode值,utf-8是一种表示法。只需使用java\u
表示法,就像我在java代码中使用这些字符时所发布的示例一样代码>可以工作,尽管我还没有测试过它。