android ListView中的自定义字体

前端之家收集整理的这篇文章主要介绍了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));

希望这应该让你走.

猜你在找的Android相关文章