我有ListView。它包含3个TextView,而不是来自activity_main.xml。
cursor = myDatabase.getJoinedInfo(etSearch.getText().toString().trim());
String[] columns = new String[] { "re_value", "g_value", "ke_value" };
int[] to = new int[] { R.id.tvHiragana, R.id.tvMeaning, R.id.tvKanji };
dataAdapter = new SimpleCursorAdapter(this, R.layout.wordonlist,
cursor, columns, to, 0);
// Assign adapter to ListView
listView.setAdapter(dataAdapter);
如何在ListView中更改TextViews的字体?
final Typeface mFont = Typeface.createFromAsset(getAssets(),
"fonts/himaji.otf");
LayoutInflater ltInflater = getLayoutInflater();
View view = ltInflater.inflate(R.layout.wordonlist, null, false);
tvHiragana=(TextView) view.findViewById(R.id.tvHiragana);
tvHiragana.setTypeface(mFont);
此代码无法更改TextView的字体。我做错了什么?
答案 0 :(得分:0)
您可以按照styles and themes article中的说明在xml中设置TextViews
样式(例如行布局)。
如果需要以编程方式更改字体(例如,仅针对某些实例,或使用编译时未知的参数),则可以创建SimpleCursorAdapter
的匿名子类(或常规子类),适配器的getView
方法中的更改。为此,请参阅slightly related answer to text color changing。您的代码会使布局膨胀(从而创建新的View
实例),并更改单个实例,而不是添加到列表中的实例。
答案 1 :(得分:0)
现在支持OpenType字体 使用TrueType字体