0

私は次のようなコードを持っています:

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"に設定したいだけです。

SpecialAdapterクラスのgetView()関数で、View view = super.getView(position、convertView、parent)を取得し、view.getId()は実際にはlinearlayoutのIDですandroid:id = "@ + id / myDisplayItemLinearLayout"

このlinearLayoutの内部テキストビューを取得して、ここで書体を使用してそれぞれに個別のフォントを設定したいのですが、これらのテキストビューを取得するにはどうすればよいですか?

ここでフォントを設定するのは正しい方法ですか、それとも別の方法で行う必要がありますか???? 私を助けてください..

4

1 に答える 1

3

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;
}
于 2012-02-10T14:53:01.980 に答える