2011-08-13 6 views
0

私はアンドロイド用の実験的なアプリの設定を作成しようとしています。しかし、私は働くための環境設定を得ることができます。アンドロイドアプリの設定の値は自動的に保存されますか?

:私は右の言語を表示するには、このコードを使用ListActivityためのその後

private String selectLang() 
{ 
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
    String lang = preferences.getString("lang", "n/a"); 
    return lang; 
} 

のonCreateメソッド内:

私は表示ラングを決定し、それを取得するために、この機能を使用使用したいの好み

String lang = selectLang(); 
String title = (lang == "english") ? "English" : "Arabic"; 

タイトルは、データベース内の列です。コードは機能していないようで、アラビア語は何に関係なく取得します。私はちょうどlangの値を知るためにこのコードを使用しました:

Toast.makeText(this, lang, Toast.LENGTH_LONG).show(); 

私は "英語"になりますが、英語は表示されません。

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<string-array name="lang"> 
    <item>Arabic</item> 
    <item>English</item> 
</string-array> 
<string-array name="langValues"> 
    <item>arabic</item> 
    <item>english</item> 
</string-array> 
</resources> 

私はSharedPreferenceエディタを使用する必要がありますが、私はそれの完全な作業例を得ることができなかったように、ここでの回答の数で読んだことがある:

ここでは、リストのための私のXMLです。

助けてもらえますか?

答えて

3

lang == "english"lang.equals("english")である必要があります。

equalsまたはequalsIgnoreCaseを使用して(他のオブジェクトと同様に)文字列を比較します。 ==演算子は、オブジェクトの内容ではなくオブジェクト参照を比較するため、チェックは常にfalseと評価されます。

+0

ありがとうございました。なぜ私はそれを含むコード行と何かがあることを知っていた。 PHPのバックグラウンドからくると、OOPの設計やJavaなどのコンパイルされた言語を完全に理解することは本当に簡単ではありません。 –

+0

Javaは私の好きな言語ですが、これはJavaのもっとも混乱しやすい構文だと思います(私だけではありません)。 1日あたり約5つ以上の質問があり、根本的な問題と同じ問題があります。 – MByD

+0

最初の質問を参照してください:値を変更して保存するには、環境設定エディタを使用してコミットする必要があります。自動的には保存されません:SharedPreferences.Editor editor = preferences.edit(); editor.commit(); –

関連する問題