gpt4 book ai didi

android - android ListView 中的自定义字体

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:21:52 25 4
gpt4 key购买 nike

我在整个应用程序中使用自定义字体(顺便说一句,我沮丧地发现您必须以编程方式手动将其应用到每个控件!),并且我需要将它应用到 ListView 。问题是我看不到我在哪里将列表字体中使用的 TextView 设置为我的自定义字体(因为我从未实例化它 - 这一切都由适配器处理)。

我最理想的是能够使用这样的适配器:

new ArrayAdapter(Context context, TextView textView, List<T> objects)

这样我可以做:textView.setTypeface 在填充我的列表之前。有谁知道是否有办法按照这些思路做某事?

最佳答案

如果您不想创建新类,您可以在创建适配器时覆盖 getView 方法,这是一个带有标题和副标题的简单适配器示例:

Typeface typeBold = Typeface.createFromAsset(getAssets(),"fonts/helveticabold.ttf");
Typeface typeNormal = Typeface.createFromAsset(getAssets(), "fonts/helvetica.ttf");

SimpleAdapter adapter = new SimpleAdapter(this, items,R.layout.yourLvLayout, new String[]{"title",
"subtitle" }, new int[] { R.id.rowTitle,
R.id.rowSubtitle }){
@Override
public View getView(int pos, View convertView, ViewGroup parent){
View v = convertView;
if(v== null){
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v=vi.inflate(R.layout.yourLvLayout, null);
}
TextView tv = (TextView)v.findViewById(R.id.rowTitle);
tv.setText(items.get(pos).get("title"));
tv.setTypeface(typeBold);
TextView tvs = (TextView)v.findViewById(R.id.rowSubtitle);
tvs.setText(items.get(pos).get("subtitle"));
tvs.setTypeface(typeNormal);
return v;
}


};
listView.setAdapter(adapter);

items 是你的 map ArrayList

希望对你有帮助

关于android - android ListView 中的自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4576441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com