Android использует пользовательский шрифт для элемента списка - PullRequest
1 голос
/ 30 октября 2011

Привет Мне нужна небольшая помощь с использованием пользовательского шрифта для элементов списка.Я получаю свой шрифт из папки ресурсов следующим образом:

Typeface font = Typeface.createFromAsset(getAssets(), "hermesbgbold.otf"); 

И я пытаюсь установить его для элементов списка, но проблема в том, что я использую SimpleAdapter для своего ListView иTextView находятся в другом XML, который я использую как contentView для моего списка.Вот код для лучшего понимания:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.events);
// code

SimpleAdapter adapter = new SimpleAdapter(this, items, R.layout.events_items,
                new String[]{ICON,TITLE, INFO}, new int[]{ R.id.thumb,R.id.title, R.id.dates})

}

Итак, текстовое представление, которое я хочу использовать с пользовательской гарнитурой, находится в events_items.xml.Так как же настроить title и dates на использование этой пользовательской гарнитуры?

1 Ответ

1 голос
/ 10 апреля 2012

Создайте свой собственный адаптер и установите шрифт для текста.

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // ViewHolder will buffer the assess to the individual fields of the row
    // layout

    ViewHolder holder;
    // Recycle existing view if passed as parameter
    // This will save memory and time on Android
    // This only works if the base layout for all classes are the same
    View rowView = convertView;
    if (rowView == null) {

        LayoutInflater inflater = context.getLayoutInflater();
        rowView = inflater.inflate(R.layout.main_listview, null, true);

        holder = new ViewHolder();
        holder.textView = (TextView) rowView.findViewById(R.id.main_name);
        rowView.setTag(holder);

    } else {
        holder = (ViewHolder) rowView.getTag();
    }

    Typeface font = Typeface.createFromAsset(getAssets(), "hermesbgbold.otf"); 
    holder.textView.setTypeface(font);
    holder.textView.setText(title);

    return rowView;
}
...