android - 如何更改 android 中填充的 ListView 项目的字体

标签 android android-listview sharedpreferences onresume

我的 Activity 中有一个 ListView (其项目中有一个 TextView )和一个按钮。我正在使用加载器机制将数据加载到 ListView 中。我正在点击按钮开始应用程序的设置 Activity 。用户可以在设置屏幕中更改字体类型和大小。我正在从首选项中获取更改的字体值,并将其设置为自定义适配器类的 bindView() 方法内的 TextView 。但是只有当我再次开始 Activity 时,我才能在 ListView 中看到更改后的字体。用户从设置屏幕单击后退按钮后,如何将更改的字体大小和类型应用于 ListView 项目?如何刷新我的 ListView 以仅更改字体?请指导我。

我尝试了下面的方法来刷新 ListView ,但它没有用,因为它仅在适配器数据集更改时通知。

@Override
public void onResume() {
    super.onResume();
    adapter.notifyDataSetChanged();
 } 

最佳答案

改变字体后调用此方法。在此参数中,“v”是您的 ListView 或 ListView 父级,“f”是方法中的字体。

    /**
 * To apply custom font for whole activity
 */
public static void applyFontForWholeActivity(final View v) {
    // Typeface fontToSet = Typeface.createFromAsset(v.getContext()
    // .getAssets(), "fonts/EUROSTILE_BOLD.TTF");

    try {
        if (v instanceof ViewGroup) {
            ViewGroup vg = (ViewGroup) v;
            for (int i = 0; i < vg.getChildCount(); i++) {
                View child = vg.getChildAt(i);
                applyFontForWholeActivity(child);
            }
        } else if (v instanceof TextView) {
            TextView tv = (TextView) v;
            tv.setTypeface(ActivityUtils.fontToSetGlobal);
        }
    } catch (Exception e) {
        e.printStackTrace();
        // ignore
    }
}

关于android - 如何更改 android 中填充的 ListView 项目的字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19135488/

相关文章:

android - 使用 REST 发送和接收复杂数据

javascript - PhoneGap 垃圾收集

首次启动 fragment 时,Android ListView 不显示内容

安卓 : Change CheckBox checked value in ListView when getFilter() called

android - 空指针异常 - 显示用户在服务器的 ListView 中下的订单

java - 帮助设置和 Android 动态壁纸

android - 我忘记了 SharedPreferences 文件的名称。

java - 启动 3d 派对应用程序后崩溃,该应用程序崩溃后

android - Kotlin 中是否有类似 #region #endregion 的语法?

java - 我可以在 ActionBarActivity 中动态填充 ListView 吗?