android ListView中的自定义字体

我在整个应用程序中使用自定义字体(其中,顺便提一句,我沮丧地发现,必须用手动方式应用于每个控件!),我需要将其应用于列表视图.问题是,我无法看到我将列表字体中使用的textview设置为我的自定义字体(因为我从来没有实例化 – 这一切都由适配器照顾).

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

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

这样我可以做:textView.setTypeface,然后填充我的列表.有没有人知道有没有办法做这些事情呢?

解决方法

您不能这样做,因为您传递给ArrayAdapter的文本视图资源在每次使用时都会膨胀.

您需要创建自己的适配器并提供自己的视图.

适配器的一个例子可以是

public class MyAdapter extends BaseAdapter {

private List<Object>        objects; // obvIoUsly don't use object,use whatever you really want
private final Context   context;

public CamAdapter(Context context,List<Object> objects) {
    this.context = context;
    this.objects = objects;
}

@Override
public int getCount() {
    return objects.size();
}

@Override
public Object getItem(int position) {
    return objects.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position,View convertView,ViewGroup parent) {

    Object obj = objects.get(position);

    TextView tv = new TextView(context);
    tv.setText(obj.toString()); // use whatever method you want for the label
    // set whatever typeface you want here as well
    return tv;
}

}

然后你可以这样设置

ListView lv = new ListView(this);
lv.setAdapter(new MyAdapter(objs));

希望这应该让你走.

相关文章

以下为个人理解,如错请评 CE: 凭据加密 (CE) 存储空间, 实际路径/data/user_ce/ DE: 设备加密 (DE) 存...
转载来源:https://blog.csdn.net/yfbdxz/article/details/114702144 用EventLog.writeEvent打的日志(或...
事件分发机制详解 一、基础知识介绍 1、经常用的事件有:MotionEvent.ACTION_DOWN,MotionEvent.ACTION...
又是好久没有写博客了,一直都比较忙,最近终于有时间沉淀和整理一下最近学到和解决的一些问题。 最近进...
Android性能优化——之控件的优化 前面讲了图像的优化,接下来分享一下控件的性能优化,这里主要是面向...
android的开源库是用来在android上显示gif图片的。我在网上查了一下,大家说这个框架写的不错,加载大的...