4

Android 4.0 を使用してフラグメントを実装しようとしています。DummyContent.java ファイルのリスト フラグメントに 3 つの項目を追加しました。

static {
    // Add 3 sample items.
    addItem(new DummyItem("1", "Videos"));
    addItem(new DummyItem("2", "Images"));
    addItem(new DummyItem("3", "Story"));
}

これらのビデオ、画像、ストーリーは、各アイテムをクリックするとフラグメントの左側に表示され、右側に詳細フラグメントの詳細情報が表示されます。

これらのリストビューのフォントを変更したいのですが、問題はリストのフラグメントがシステムのテキストビューを以下のように使用していることです

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // TODO: replace with a real list adapter.
    setListAdapter(new ArrayAdapter<DummyContent.DummyItem>(getActivity(),
            android.R.layout.simple_list_item_activated_1,
            android.R.id.text1, DummyContent.ITEMS));
}

タイプフェイスを適用できないのはどれですかandroid.R.id.text1

私を助けてください

4

2 に答える 2

8

1 つの方法は、メソッドを拡張ArrayAdapterおよびオーバーライドして、以下getViewを取得することですTextView

public class MyArrayAdapter<T> extends ArrayAdapter<T> {

    public MyArrayAdapter(Context context, List<T> items) {

        super(context, android.R.layout.simple_list_item_activated_1, android.R.id.text1, items);
    }

    public MyArrayAdapter(Context context, T[] items) {

        super(context, android.R.layout.simple_list_item_activated_1, android.R.id.text1, items);
    }

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

        View view = super.getView(position, convertView, parent);
        TextView textView = (TextView) view.findViewById(android.R.id.text1);
        textView.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "font/segoeuil.tff"));

        return view;
    }
}

次に、アダプターを次のように設定します。

setListAdapter(new MyArrayAdapter<DummyContent.DummyItem>(getActivity(), DummyContent.ITEMS);
于 2013-01-07T06:53:48.080 に答える
1

定義済みのレイアウトの代わりに独自のカスタム レイアウトを使用できます このような xml ファイルを作成します

<?xml version="1.0" encoding="utf-8"?>
say your layout name be custom.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
 android:id="@+id/cust_view"  
    android:layout_width="match_parent" 
    android:textSize="12dp"
    android:padding="6dp"
    android:layout_height="wrap_content" /> 

このレイアウトに独自のフォントを指定できます。そして、このようにアダプターを設定します

setListAdapter(new ArrayAdapter<DummyContent.DummyItem>(getActivity(),
            R.layout.custom,
            android.R.id.text1, DummyContent.ITEMS));

これがお役に立てば幸いです

于 2013-01-07T06:01:10.973 に答える