-2

私はを作成してSharedPreferencesいて、次のようにアクティビティを開始した場合にのみ機能します。

myIntent.putExtra("prefName", MYPREFS);
startActivity(myIntent);

しかし、SharedPreferencesを保存して数回押し返し、メニューページに移動して、設定を取得したいページに移動した後、SharedPreferencesが機能しません。

誰でも私を助けることができますか?

以下のコード:

これは私が私の好みを保存するところです:

String MYPREFS = "MyPref";
SharedPreferences mySharedPreferences;
SharedPreferences.Editor myEditor;

onCreateの内部:

mySharedPreferences = getSharedPreferences(MYPREFS,0);
myEditor = mySharedPreferences.edit();

クリックリスナーの内側のボタン:

 myEditor.putString("address", AddressET.getText().toString());
    myEditor.putString("contact", ContactET.getText().toString());
    myEditor.commit();

Intent myIntent = new Intent(myContext, nok_individual_particular.class);
myIntent.putExtra("prefName", MYPREFS);
startActivity(myIntent);

これは私が渡すアクティビティです:

SharedPreferences mySharedPreferences;

onCreateの内部:

Intent myReceivingIntent = getIntent();
String myPREFName = myReceivingIntent.getStringExtra("prefName");

mySharedPreferences = getSharedPreferences(myPREFName, 0);

applySavedPreferences();

applySavedPreferencesメソッドの場合:

 String addressValue = mySharedPreferences.getString("address", "Jack Smith");
String contactValue = mySharedPreferences.getString("contact", "Jack Smith");   

addressTV.setText(addressValue);
contactTV.setText(contactValue);
4

6 に答える 6

3

SharedPreferences:これはそれがどのように機能 するかです
あなたのデータを保存するために

SharedPreferences sPrefs = getSharedPreferences("prefsName", 0);
SharedPreferences.Editor editor = sPrefs.edit();
editor.putString("valueName", "value");
editor.commit();

データを取得するには:

SharedPreferences sPrefs = getSharedPreferences("prefsName", 0);
String strMyData = sPrefs.getString("valueName", "default value");

上記の例は、文字列を設定して取得する方法です。

于 2012-08-02T07:25:16.843 に答える
2

を使用していませんSharedPreferences。あなたの例では、エクストラをアクティビティに渡していますが、これは値を新しいアクティビティで利用できるようにするだけで、値をに保存しませんSharedPreferences

を使用するSharedPreferencesには、次の手順を実行する必要があります。

保存

PreferenceManager.getDefaultSharedPreferences(this).edit().putString("prefName", "String to save").commit();

得る

String value = PreferenceManager.getDefaultSharedPreferences(this).getString("prefName"), "default value");
于 2012-08-02T07:12:12.620 に答える
0

mySharedPreferences.edit();

mySharedPreferences.commit();

あなたの最後の行でなければなりません。これにより、編集したSharedPreferencesファイルを保存して閉じることができます。

ええと、あなたはインテントとすべてでsharedprefsを渡す必要はありません。これは、すべてのアクティビティでアプリケーション全体で利用できます。

呼び出すだけSharedPreferences my_prefs= getSharedPreferences("Pref_name", 0);で、そのSharedPreferencesファイルへの参照があり、そこから値を取得できます。

于 2012-08-02T07:14:30.553 に答える
0

私は SharedPreferences を使用してデータを保存し、クラス全体で使用することを好みます。さらに、データはデバイスに保存されるため、アプリが強制終了された後でも使用できるようになります...これが ya の例です!

//Some String that I should remember, I am just using the package name for now
String app = this.getPackageName();/*This is going to be used more like a file to save my stuff to*/
//Setting our sharedpreferences
SharedPreferences sha = sha = getApplicationContext().getSharedPreferences(app, SherlockActivity.MODE_PRIVATE);


String myString = "This is the String that you want to save so you can use among your classes"

//Now we call in an editor for that SharedPreferences so we can write and delete stuff from it .

Editor edit = sha.edit();

//Now we insert our String.
edit.putString("Something_you_can_remember" , myString);//You will need the "Something_you_can_remember" a few lines ahead , so remember it !
edit.apply(); //Or we can use edit.commit() , but I prefer apply()

//Now our String is saved ! So lets read it !

String whatever = sha.getString("Something_you_can_remember" , "The String incase myString didn't even exist , saves you from a NullPointerException");

//Here we go ! Now we have our String saved and can be readable among the classes !
//Also , if you wanted to delete that String or whatever you "put" in there , you can call

edit.remove("Something_you_can_remember"); //or edit.clear() to remove all the values stored !

お役に立てれば !

于 2012-12-27T09:17:12.983 に答える
0

SharedPreferences はアプリケーション全体で使用でき、どのアクティビティでもアクセスできるため、インテントを介して SharedPrefences を渡す必要はありません。

以下の例を参照できます。

名前を選択して SharedPreferences を作成します。

SharedPreferences pref = getSharedPreferences("MyPref", MODE_PRIVATE);

または、デフォルトの SharedPreferences を使用します。

SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);

上記のいずれかの方法で設定ファイルを取得して、コードの任意の場所で設定ファイルを使用します。別のアクティビティに渡す必要はありません。

上記のメソッドのいずれかを呼び出すと、その名前の設定ファイルがアプリケーションに存在しない場合、Android が作成します。

于 2017-08-21T06:06:16.100 に答える