我已经创建了一个使用SimpleCursoradapter的应用程序。
String[] from = new String[] {"title","notes","image"};
int[] to = new int[] { R.id.esodaTextView, R.id.amountTextView, R.id.imageView1};
esodaAdapter = new SimpleCursorAdapter (this, R.layout.recipe_list_item, null, from, to);
如您所见,我在2个TextViews(esodaTextView + amountTextView)和一个imageView上显示三个数据。
问题是如何将自定义字体(在资源文件夹中保存)设置为这两个TextViews(esodaTextView + amountTextView),以便我可以使用自定义字体显示文本。
这是列表项的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="10dp"
android:background="#55eee9e9" >
<TextView
android:id="@+id/esodaTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="20dp"
android:textColor="#000000"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical" />
<TextView
android:id="@+id/amountTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/esodaTextView"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:paddingBottom="5dp"
android:textSize="12dp" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:layout_alignParentRight="true"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
我知道我可以通过以下代码以编程方式设置自定义字体,但我如何在Simplecursoradaptor中使用它?
TextView txt1 = (TextView) findViewById(R.id.textView1);
Typeface font = Typeface.createFromAsset(getAssets(), "segoescb.ttf");
txt1.setTypeface(font);
提前感谢您的帮助。
答案 0 :(得分:2)
您要做的是覆盖SimpleCursorAdapter的ViewBinding:
SimpleCursorAdapter.ViewBinder binding=adapter.setViewBinder( new SimpleCursorAdapter.ViewBinder()
{
boolean SetViewValue(View view, Cursor cursor, int columnIndex)
{
TextView tv=(TextView)view.findViewById(R.id.iesodaTextView)
//Do what you want here
return true;
}
});