2011-12-29 27 views

答えて

2

あなたは、あなたのコード内のプリファレンスを設定し、あなたがそれを埋める前に、それがすでに満たされているかどうかを確認することができます。あなたがこの情報を変更するためのアクセス権をユーザーに与えていない限り、ユーザーが行うことができるのは「ローカルデータをクリアする」ことだけです。

は私がログインしているデバイス、などのユーザーは、彼らが知っているすべては、彼らがスムーズなプログラムを持っていなくても(とん)私はを追跡するのか分からないですんの一意のIDを保存するためにこのテクニックを使用しますそれは彼らが必要とすることをします。

例:

SharedPreferences settings = context.getSharedPreferences("preferanceName", 0); 
SharedPreferences.Editor editor = settings.edit(); 
int value = foo; 
editor.putInt("ValueToStore", value); 
editor.commit(); 
+0

ありがとうございます。インタラクティブな編集の可能性なしに "灰色"(読み取り専用)テキストとして表示される "preferencses.xml"の項目を作成することは可能ですか? – yuriy

+0

私は自分の好みのアクティビティを作っているので、本当にあなたに話すことができませんでした。 SOの別の質問と同じように聞こえます:D – Pyrodante

+0

@yuriy:はい、XMLにandroid:enabled = "false"を追加することで、環境設定を読み取り専用にすることができます。詳細はこちらをご覧ください:http://developer.android.com/reference/android/preference/Preference.html –

15

私は次のようでこれを達成:私のapplication_preferences.xmlで

私は、次の優先順位を持っています。これにより、まだ黒(灰色ではない)になりますが、それでもユーザーは編集できません。灰色にすると読みにくくなります。 onCreateメソッド嗜好活性で

<EditTextPreference 
    android:key="version" 
    android:title="@string/version" 
    android:enabled="false" 
    android:selectable="false" 
    android:persistent="false" 
    android:shouldDisableView="false"/> 

、バージョンの嗜好を取得し、アプリケーションのバージョンにタイトルを設定します。

+1

ありがとう、ちょうど私が探していたもの。 – Vyrx

+1

まさに私が探していたもの –

34

なぜandroid.preference.Preferenceを直接使用しないのですか?

<Preference 
android:key="version" 
android:title="@string/version" /> 

編集ダイアログはなく、属性や情報はありません。

//Set the version string in your code 
findPreference("version").setSummary(version); 
+2

これを行う方法は、マニフェストのversionStringを反映させる方法ですか? – scone

+1

@scone String version = getPackageManager()。getPackageInfo(getPackageName()、0).versionName; – tpbapp

+1

@tpbapp私はコードなしでこれを行う方法を望んでいた。 – scone

0

ケビン・ウエストウッド

値はタイトル怒鳴る見えるように私は、 のsetTitle にsetSummaryを変更私の場合は

String serverUrl = "http://..."; 
    EditTextPreference pref = (EditTextPreference)findPreference("serverPrefKey"); 
    pref.setSummary(serverUrl); 
関連する問題