更改不在activity_main.xml中的T​​extView字体

时间:2013-08-24 00:39:08

标签: android listview textview typeface

我有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的字体。我做错了什么?

2 个答案:

答案 0 :(得分:0)

您可以按照styles and themes article中的说明在xml中设置TextViews样式(例如行布局)。

如果需要以编程方式更改字体(例如,仅针对某些实例,或使用编译时未知的参数),则可以创建SimpleCursorAdapter的匿名子类(或常规子类),适配器的getView方法中的更改。为此,请参阅slightly related answer to text color changing。您的代码会使布局膨胀(从而创建新的View实例),并更改单个实例,而不是添加到列表中的实例。

答案 1 :(得分:0)

现在支持OpenType字体 使用TrueType字体

Font Supported