1

数日前に Android で始めました。私は初心者です。Weight、Width の値を持つ MainActivity を取得しました。これらの値は、インチ - ポンドまたは Cm - キログラムのいずれかになります。

これらの値を変更するにはどうすればよいですか? 設定から、ListPreference を使用してシンプルなメニューを作成しました。これら 2 つのメジャーのいずれかを選択するときは、MainActivity を新しい値で更新する必要があります。なぜですか?私は以下を得ました

TextView : テキストエディット

重量 (キログラム)

[ _ _ _ _ _ ___ ]

幅 (cm)

[ _ _ _ _ _ ___ ]

括弧内のこれらのテキストは、設定メニューで選択した後に動的に変更したいと考えています。

これは私のコードの一部です:

Prefs.xml から設定を取得する MainActivity

 @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        initializeAttributes();

        SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(this);
        String measures = getPrefs.getString("MEASURE_KEY", "Inches-Pounds");


        String[] splitMeasure = measures.split("\\-");
        measureWeight.setText(measureWeight.getText() + " ( " + splitMeasure[1] + " )");
        measureHeight.setText(measureHeight.getText() + " ( " + splitMeasure[0] + " )");

これは、メニューを含む prefs.xml です。

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory                 
        android:title="@string/cat_language">   
        <ListPreference                    
            android:title="@string/title_language"            
            android:summary="@string/sum_language"    
            android:key="LANGUAGE_KEY"                         
            android:entries="@array/languages"            
            android:entryValues="@array/languages" 
            android:defaultValue="English"/>   
    </PreferenceCategory>      

    <PreferenceCategory             
        android:title="@string/cat_usage">   
        <ListPreference                    
            android:title="@string/title_measure"            
            android:summary="@string/sum_measure"    
            android:key="MEASURE_KEY"                    
            android:entries="@array/measures"            
            android:entryValues="@array/measures" 
            android:defaultValue="Inches-Pounds"/>  
    </PreferenceCategory>     

    <PreferenceCategory             
            android:title="@string/cat_help">   
        <Preference               
            android:title="@string/title_howto"  
            android:summary="@string/sum_howto"   
            android:key="HOWTO_KEY" />
        <Preference               
            android:title="@string/title_about"  
            android:summary="@string/sum_about"   
            android:key="ABOUT_KEY" />
    </PreferenceCategory>
</PreferenceScreen>

commit() を使用してみましたが、動作させることもできませんでした。

onResume() を使用しようとした後、結果として得られたものは、設定から変更するたびに (測定) を追加していたという事実を除いて、「問題ありませんでした」。

重量 ( キログラム ) ( ポンド ) ( キログラム ) ( ポンド ) など。

この場合、onResume メソッドの使用方法について誰か助けてもらえますか?

前もって感謝します。

4

1 に答える 1

1

In the ListPreference change android:entryValues to android:entryValues="@array/measuresValues"

Your entries arrays should look something like this

<string-array name="measures">
    <item>Inches-Pounds</item>
    <item>Cm-Kilograms</item>
</string-array>   

and your entryValues array

<string-array name="measuresValues">
    <item>"Inches-Pounds"</item>
    <item>"Cm-Kilograms"</item>
</string-array>  

Then put this in the activity onResume()

SharedPreferences mysettings = PreferenceManager.getDefaultSharedPreferences(this);
String st1 = mysettings.getString("MEASURE_KEY", "default Value here");

if(st1.equals("Inches-Pounds")){ 
    //do some stuff here
    //like textview.setText.....
}
if(st1.equals("Cm-Kilograms")){ 
    //do some stuff here
}
于 2013-03-16T06:11:47.870 に答える