ArrayAdapter
에 TextView
의 글꼴을 변경하려고합니다. chantelli_antiqua.ttf
글꼴은 assets 폴더에 있습니다. 을 listitem 레이아웃ArrayAdapter의 textview에 대한 사용자 정의 글꼴
listItemAdapter = new ArrayAdapter<MenuItem>(this, R.layout.listitem, menuItems);
Typeface font = Typeface.createFromAsset(getAssets(), "chantelli_antiqua.ttf");
TextView v = (TextView)listItemAdapter.getView(0, null, null);
v.setTypeface(font);
XML : 나는 문제가 Adapter.getView(int, View, ViewGroup)
방법으로 거짓말을 매우 확신
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="30sp"
/>
여기 내 자바 코드입니다. 변수로 전달할 내용을 실제로 이해하지 못했으며
null
을 시도했습니다. 그러나 이것은 내가 원했던 것을하지 않습니다.
Adapter
에있는 TextView
의 글꼴을 사용자 지정 글꼴로 변경하는 방법은 무엇입니까?
업데이트
는 픽시의 제안에 따르면 나는 ArrayAdapter<MenuItem>
확장하는 MenuItemAdapter
생성 :
public class MenuItemAdapter extends ArrayAdapter<MenuItem>
{
private Typeface font;
public MenuItemAdapter(Context context, int textViewResourceId, List<MenuItem> objects)
{
super(context, textViewResourceId, objects);
font = Typeface.createFromAsset(context.getAssets(), "chantelli_antiqua.ttf");
}
@Override
public View getView(int position, View view, ViewGroup viewGroup)
{
((TextView)view).setTypeface(font);
return super.getView(position, view, viewGroup);
}
}
을 그리고 내 자바 코드를 변경 :
listItemAdapter = new MenuItemAdapter(this, R.layout.listitem, menuItems);
하지만 지금 내 응용 프로그램 충돌 후
onCreate
ListActivity
중 하나이지만, 중단 점이
getView(...)
에 도달하기 전에는 왜 그런지 알아낼 수있었습니다. 어떠한 제안?
갱신 2
가의 getView (...)의 코드를 변경 :@Override
public View getView(int position, View view, ViewGroup viewGroup)
{
View v = super.getView(position, view, viewGroup);
((TextView)v).setTypeface(font);
return v;
}
이 작동합니다. :)
[레이아웃을 사용하여 맞춤 글꼴 적용] (http://androidtrainningcenter.blogspot.in/2013/07/applying-custom-font-in-entire-android.html) – Sameer