2010-11-18 17 views
2

私は自分のアプリケーションにいくつかのシンプルな設定を実装しようとしており、XMLファイルで定義されたビューを操作するために環境設定を使う方法を理解しようとしています。私は、行ごとに使用されている次のLinearLayout(player_row.xml)とのリストを持っている:XMLレイアウトで環境設定にアクセスできますか?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <ImageView android:id="@+id/player_icon" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center"/> 
    <TextView android:id="@+id/player_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="30sp" 
    android:textColor="#F0F0F0" 
    android:layout_weight="1" 
    android:layout_marginLeft="5dp"/> 
    <TextView android:id="@+id/player_score" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="30sp" 
    android:textColor="#F0F0F0"/> 
</LinearLayout> 

は今、私は手動でTEXTSIZE属性を指定しています。私は、ユーザーがいくつかのオプション、 "小"、 "中"、 "大"などを選択できるようにするために、環境設定メニューを作成したいと思います。私はエントリとフォントサイズの配列を設定して、それをplayer_row.xmlで参照することができるはずですが、私はできないようです。

あるpreferences.xml:

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" 
    android:key="preference_main"> 
    <ListPreference 
     android:key="fontSizePreference" 
     android:title="Font size" 
     android:entries="@array/fontSizeList" 
     android:entryValues="@array/fontSizeList_Values"/> 
</PreferenceScreen> 

arrays.xml:これができない場合は、環境設定を使用してレイアウトを設定するための適切な方法は何

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string-array name="fontSizeList"> 
    <item>Small</item> 
    <item>Medium</item> 
    <item>Large</item> 
    </string-array> 
    <string-array name="fontSizeList_Values"> 
    <item>22sp</item> 
    <item>26sp</item> 
    <item>30sp</item> 
    </string-array> 
</resources> 

のですか?私の検索では、プログラムで環境設定にアクセスするための複数のリソースを見つけることができましたが、XMLファイルで定義されたレイアウトを設定する適切な方法はありません。

答えて

1

私はあなたが探している手順があると思う:

  1. ユーザーが設定を保存すると、getPreferences(MODE_PRIVATE).edit().putString(PREF_FONT_SIZE, yourSetting).commit()
  2. を使用して(あなたのバッキングPreferenceActivityがファイルに設定を保存してみましょう設定画面&活動
  3. を作成します。あなたの主なアクティビティ#increateで、setContentViewを使ってレイアウトを読み込みます。
  4. あなたの設定もそこにロードしてください。
  5. 表示されるfindViewByIdからフォントサイズを設定します。
+0

これは私がする必要があると思っていたものです。私は、レイアウトファイルを使ってそのすべてを行う方法があることを望んでいました。 – Thomas

+1

どうすればそれが可能ですか?別のXMLマッピングファイル、または少なくともlayout.xmlファイルから設定への参照が必要です。デフォルト値、無効なタイプなどについては言及しません。私は今のように良いと思います。 ;-) –

+0

まあ、キーを指定すると、@ pref/font_sizeやそのような行に沿ったものなど、リソースが自動的に生成されるかどうかわかりませんでした。どちらかといえば、何か根本的なものを逃していないことを確かめたいと思っています。 – Thomas

関連する問題