Как установить пользовательский шрифт для одного из TextView в элементе ListView? - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть такой код:

SpecialAdapter adapter = new SpecialAdapter(
                                this, 
                                list, 
                                R.layout.list_display_item, 
                                from, 
                                to );

        myTextListView.setAdapter(adapter); 

.
.
.
.

public class SpecialAdapter extends SimpleAdapter
 {
        public SpecialAdapter(Context context, List<HashMap<String, 
String>> items, int resource, String[] from, int[] to) {
            super(context, items, resource, from, to);
        }

        @Override

        public View getView(
int position, View convertView, ViewGroup parent)
 {
          View view = super.getView(position, convertView, parent);
                }
    }

и list_display_item.xml

<?xml version="1.0" encoding="utf-8"?>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/myDisplayItemLinearLayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:orientation="vertical">

        <TextView
            android:id="@+id/arabicTextView"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="right|center_vertical"
            android:lineSpacingMultiplier="3"
            android:text="Arabic"
            android:textSize="30dp"/>

        <TextView
            android:id="@+id/translationTextView"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="English" 
            android:gravity="left|center_vertical"
            android:textSize="30dp"/>

    </LinearLayout> 

Я просто хочу установить свой собственный арабский шрифт для Android: id ="@ + id / arabicTextView" и английский шрифт для android: id = "@ + id / translationTextView".

В функции getView () класса SpecialAdapter я получаю View view = super.getView (position, convertView, parent) и view.getId () на самом деле является идентификатором linearlayout android: id = "@ + id /myDisplayItemLinearLayout "

Я просто хочу получить внутренние текстовые представления этого linearLayout, чтобы установить отдельные шрифты для каждого, используя здесь шрифт ... как я могу получить эти текстовые представления там ??

Это правильный способ установить здесь мои шрифты или это должно быть сделано каким-то другим способом?пожалуйста, помогите мне ..

1 Ответ

3 голосов
/ 10 февраля 2012

Используйте метод findViewById View и метод setTypeface TextView

public View getView(int position, View convertView, ViewGroup parent)
{
    View view = super.getView(position, convertView, parent);

    //assuming you've put your arabic font file in your assets directory
    ((TextView)view.findViewById(R.id.arabicTextView)).setTypeface(Typeface.createFromAsset(view.getContext().getAssets(), "yourarabicfont.otf"));

    //assuming you've put some custom english font in your assets directory
    ((TextView)view.findViewById(R.id.translationTextView)).setTypeface(Typeface.createFromAsset(view.getContext().getAssets(), "yourenglishfont.otf"));

    return view;
}
...