我正在尝试使用android 4.0实现片段。 我在DummyContent.java文件中添加了列表片段中的三个项目
static {
// Add 3 sample items.
addItem(new DummyItem("1", "Videos"));
addItem(new DummyItem("2", "Images"));
addItem(new DummyItem("3", "Story"));
}
这些视频,图像,故事出现在片段左侧,点击每个项目,显示右侧细节片段的详细信息。
我想更改这些列表视图的字体,但问题是列表片段使用系统textview,如下所示
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
请帮帮我
答案 0 :(得分:8)
一种方法是扩展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);
答案 1 :(得分: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));
我希望这会对你有所帮助