【发布时间】:2013-11-29 12:36:57
【问题描述】:
我有三个问题:
我使用 getApplicationContext 与我所见过的所有示例不同,这些示例只是说上下文。我如何在这里获得上下文?还是应用上下文没问题?
我重写 getView 而不是让它自己处理它是否有任何性能损失(我这样做只是为了设置自定义字体)
在使用这种方法时我应该注意什么(因为我只是在复制和粘贴,而不知道如果我的列表中有 250 个项目会做什么)。我可能导致的任何潜在泄漏?
我的代码:
private Typeface arabicFont;
arabicFont = Typeface.createFromAsset(getAssets(), "arabicfont.ttf");
...
_arabicAdapter = new SimpleCursorAdapter(this,
R.layout.book_list_item_arabic,
_cursor,
new String[] {"NumberArabic", "Arabic"},
new int[] {R.id.txtNumber, R.id.txtBookName},
CursorAdapter.NO_SELECTION)
{
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
if(convertView == null)
{
LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.book_list_item_arabic, parent, false);
}
TextView txtBookName = (TextView)convertView.findViewById(R.id.txtBookName);
txtBookName.setTypeface(arabicFont);
txtBookName.setText("\"العربية\"");
return convertView;
};
};
【问题讨论】:
标签: android listview fonts layout-inflater typeface