Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过android首选项更改活动的字体大小_Android_Xml_Sharedpreferences - Fatal编程技术网

通过android首选项更改活动的字体大小

通过android首选项更改活动的字体大小,android,xml,sharedpreferences,Android,Xml,Sharedpreferences,我有一个问题,我正在尝试根据用户在共享首选项中的选择调整字体大小,我通过使用以下背景色来实现这一点: <ListPreference android:summary="@string/main_bg_list_pref_summary" android:title="@string/main_bg_list_pref_title" android:key="main_view_bg_list_pref" andr

我有一个问题,我正在尝试根据用户在共享首选项中的选择调整字体大小,我通过使用以下背景色来实现这一点:

 <ListPreference 
         android:summary="@string/main_bg_list_pref_summary"
         android:title="@string/main_bg_list_pref_title" 
         android:key="main_view_bg_list_pref"
         android:entries="@array/color_names"
         android:entryValues="@array/color_values"
         android:defaultValue="white"/>
我的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:background="#FFF"
    android:gravity="center"
    android:id="@+id/main_layout">"

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/mainscreen_title" 
        android:textSize="25sp"
        android:textColor="#000"
        android:gravity="center"/>

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/main_prompt"
        android:textSize="15sp"
        android:layout_marginTop="20dp"
        android:gravity="center"
        android:textColor="#000"
    />

    <Button
        android:id="@+id/post_review"
        android:layout_width="200dp"
        android:layout_height="60dp"
        android:layout_marginTop="20dp"
        android:text="@string/post_review_txt"
        android:textSize="15sp"
        android:textColor="#FFFFFF"
        android:background="@drawable/buttonshape"
         />

    <Button
        android:id="@+id/view_reviews"
        android:layout_width="200dp"
        android:layout_height="60dp"
        android:layout_marginTop="20dp"
        android:text="@string/view_review_txt"
        android:textSize="15sp"
        android:textColor="#FFFFFF"
        android:background="@drawable/buttonshape"
         />

    <Button
        android:id="@+id/add_category"
        android:layout_width="200dp"
        android:layout_height="60dp"
        android:layout_marginTop="20dp"
        android:text="@string/add_category_txt"
        android:textSize="15sp"
        android:textColor="#FFFFFF"
        android:background="@drawable/buttonshape"
         />

    <Button
        android:id="@+id/view_remote_categories"
        android:layout_width="200dp"
        android:layout_height="60dp"
        android:layout_marginTop="20dp"
        android:text="@string/view_remote_categories_txt"
        android:textSize="15sp"
        android:textColor="#FFFFFF"
        android:background="@drawable/buttonshape"
         />

</LinearLayout>
我尝试对特定文本视图的字体大小进行类似的设置,但由于没有设置背景色这样的可用方法,我不确定这是如何工作的,到目前为止,我有以下方法:

 <ListPreference 
         android:summary="@string/main_font_summary"
         android:title="@string/main_font_title" 
         android:key="main_font_pref"
         android:entries="@array/font_names"
         android:entryValues="@array/font_values"
         android:defaultValue="15sp"/>
阵列:

   <string-array name="font_names">
        <item name="large">Large Font</item>
        <item name="medium">Medium Font</item>
        <item name="small">Small Font</item>
    </string-array>
    <string-array name="font_values">
        <item name="large">20sp</item>
        <item name="medium">15sp</item>
        <item name="small">10sp</item>
    </string-array>

是否有某种方法可以以某种方式将textview ID作为目标并通过prefs进行更改?

有-setTextSize将更改文本大小我尝试此操作时出错,当我尝试分析数据时:String font=prefs.getStringmain\u font\u pref,15;float-fontSize=float.parseFloatfont;TextView mainText=TextViewfindViewByIdR.id.main\u text;mainText.setTextSizefontSize;不要将pref保存为字符串并尝试转换它。只需将pref保存为float并将其检索为float即可。
 <ListPreference 
         android:summary="@string/main_font_summary"
         android:title="@string/main_font_title" 
         android:key="main_font_pref"
         android:entries="@array/font_names"
         android:entryValues="@array/font_values"
         android:defaultValue="15sp"/>
   <string-array name="font_names">
        <item name="large">Large Font</item>
        <item name="medium">Medium Font</item>
        <item name="small">Small Font</item>
    </string-array>
    <string-array name="font_values">
        <item name="large">20sp</item>
        <item name="medium">15sp</item>
        <item name="small">10sp</item>
    </string-array>