Retrieve spinner value in SharedPreferences - android

i know i can save and get spinner val by this methods
but if i have long instead of int ,how should i do it
int userChoice = spinner.getSelectedItemPosition();
SharedPreferences sharedPref = getSharedPreferences("FileName",0);
SharedPreferences.Editor prefEditor = sharedPref.edit();
prefEditor.putInt("userChoiceSpinner",usersChoice);
prefEditor.commit();
this to get
SharedPreferences sharedPref = getSharedPreferences("FileName",MODE_PRIVATE);
int spinnerValue = sharedPref.getInt("userChoiceSpinner",-1);
if(spinnerValue != -1) {
// set the selected value of the spinner
spinner.setSelection(spinnerValue);
}

in the same way you can use putLong and getLong

Your use the Integer.parseInt function on the spinner.getSelectedItemPosition result:
Integer.parseInt(spinner.getSelectedItemPosition())

Related

Why sharedpreference value not getting in when retrieving?

I aaded three shared preferences as below code. And I am able to retrieve onl n shared preference value.
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("Loggedin",true);
editor.putString("userId",userid);
editor.putString("pwd",password);
editor.apply();
editor.commit();
I used the following code for retrieving from another activity. I am able to retrieve only the boolean value. Other values are not there. getting the default value for the string values. please help me.
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
Boolean loggedin=preferences.getBoolean("Loggedin", false);
String userId=preferences.getString("userId", "0");
String pwd=preferences.getString("pwd", "0");
check first the value u store in preferences are stored or not
using this code
Boolean loggedin=preferences.getBoolean("Loggedin", false);
String userId=preferences.getString("userId", null);
String pwd=preferences.getString("pwd", null);
if(userId==null || pwd==null)
{
//data not therer
}
else
{
//do something with data
}
and let me know if any error occured..
I think you're not getting the SharedPreferences in a correct way.
See the doc for ex: https://developer.android.com/training/basics/data-storage/shared-preferences.html
Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
getString(R.string.preference_file_key), Context.MODE_PRIVATE);
Also, you don't need to call apply() AND commit(). Just one of those is enough. See the javadoc for the differences btw them.
Use this code
String userId=preferences.getString("userId", null);
String pwd=preferences.getString("pwd", null);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
Boolean loggedin=preferences.getBoolean("Loggedin", false);
String userId=preferences.getString("userId", "");
String pwd=preferences.getString("pwd", "");
if(userId==null || userId==""||pwd==null ||pwd=="")
{
}
else
{
}
Try code in this way.
Set values in First Activity
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("Loggedin",true);
editor.putString("userId",userid);
editor.putString("pwd",password);
editor.apply();
Retrieve value in Second Activity
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
Boolean loggedin=preferences.getBoolean("Loggedin", false);
String userId=preferences.getString("userId", "");
String pwd=preferences.getString("pwd", "");
Used in that way for retrieve values from shared preferences for your code.
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
Boolean loggedin=preferences.getBoolean("Loggedin", false);
//Checking the value of userId and pwd,if they are null then there is no values of userId and pwd other than default.
if (userId != null && pwd != null) {
String userId = preferences.getString("userId", "0");
String pwd = preferences.getString("pwd", "0");
} else {
String userId = "0";
String pwd = "0";
}

Android Preference old and new value compare

I have got NewValue from activity1 and store on preference and compare with OldValue from activity2: my problem it dose not store oldValue..
on activity 1:
int i = 5;
SharedPreferences prefs1 = getPreferences(0);
SharedPreferences.Editor editor = getPreferences(0).edit();
editor.putInt("new", i);
editor.commit();
on activity 2:
SharedPreferences prefs1 = getPreferences(0);
int oldValue = prefs1.getInt("old", 0);
int newValue = prefs1.getInt("new", 0);
/* Should Activity Check for Updates Now? */
if (oldValue < newValue) {
/* Save current newValue for next Check */
SharedPreferences.Editor editor = getPreferences(0).edit();
editor.putInt("old", newValue);
editor.commit();
do something....
}
Well, if you want share preferences with activities then you need to use getSharedPreferences(String, int) but you are using getSharedPreferences(int)
getSharedPreferences(int) Retrieve a SharedPreferences object for accessing preferences that are private to this activity. This simply calls the underlying getSharedPreferences(String, int) method by passing in this activity's class name as the preferences name.
get SharedPreference object like this
SharedPreferences prefs1 =getSharedPreferences ("app_prefs", Context.MODE_PRIVATE);
is the key of newValue is "new" or "newValue" ? you saved it with key and retrieving with the other
So it won't find the newValue so it will be always equals zero
editor.putInt("newValue", 5);
int newValue = prefs1.getInt("new", 0);
So you newValue will equal 0 because no key "new" in prefrences

How to save setText?

final Button haa = (Button) findViewById(R.id.haactiv);
haa.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dhas = (EditText) findViewById(R.id.dha);
haout = (TextView) findViewById(R.id.haoutput);
haout.setText(dhas.getText());
}
});
I don't know how to save the output haout from the getText dhas for the next time I start the app.
Thanks for help!
You can save it in the shared preferences. Example:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();
To read from the shared preferences:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);
Some more information about shared preferences here
If you need save data permanente.
Try save in a .txt file.

How to save value in SharedPeference in the actitvity and access it all other classes

I want to save totalBalance in this activity to SharedPreferances and the retrive it in another class.
so i want totalbalance to be displayed in another activities in same application...
if possible also edit it in other activites...
please help... thanks
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Do something in response to button click
// Genrating random number Random number
Random rn = new Random();
randomNumber = (int) rn.nextInt(9) + 1;
// changes textView1 equals to random number
textView1.setText("Random Number is "
+ Integer.toString(randomNumber));
button1.setText("Play Again");
// Matching random number to ArrayList
if (positive_IDs.contains(randomNumber)) {
// if matched then changes textView2 to Matched Number
textView2.setText("Number: "
+ Integer.toString(randomNumber) + " Matched");
totalBalance = totalBalance + winingPrize;
textView5.setText("Total Balance = Rs: "
+ String.format("%.2f", totalBalance));
}
}
try this,
public void saveValue(String lock, Context context) {
Editor editor = context
.getSharedPreferences(KEY, Activity.MODE_PRIVATE).edit();
editor.putString("Value", lock);
editor.commit();
}
public String getValue(Context context) {
SharedPreferences savedvalue = context.getSharedPreferences(KEY,
Activity.MODE_PRIVATE);
return savedvalue.getString("Value", "");
}
Save Value as Following
int Value;
private void saveValues(){
SharedPreferences readSP = getSharedPreferences("String", MODE_PRIVATE);
SharedPreferences.Editor editor = readSP.edit();
editor.putString("String", Value);
editor.commit();
}
Retrive value in any of your Class As following
int value;
private void getSavedValue()
{
SharedPreferences settings = getSharedPreferences("String", MODE_PRIVATE);
value=settings.getString("String", "");
}
// try this
SharedPreferences sharedPreferences = getSharedPreferences("yourSharePreferenceName", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("balance", String.format("%.2f", totalBalance));
editor.commit();
SharedPreferences sharedPreferences = getSharedPreferences("yourSharePreferenceName", MODE_PRIVATE);
String total = sharedPreferences.getString("balance");
Use following code to retrive your value from SharedPreference,write this in other class where you want to retrive value of total balance
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(YourActivityName.this);
Editor edit1 = remembermepref.edit();
edit1.putInt("totalbalance_key",totalBalance);
edit1.commit();
and to store total balance into ShardPreference use in your activity:
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(YourActivityName.this);
int totalbalance = pref.getInt("totalbalance_key");
Now use totalbalance way you want.
Most important thing is to check whether you have used same key to restore as well as tostore the value in SharedPreference
Hope this helps..

SharedPreferences keep getting default value

I keep Getting the Default value either my UI will display null or if I use integers it displays that default value as well here it is in the string form plz help
//putting the information in shared preferences
TextView pScore1=(TextView)findViewById(R.id.pScore1f);
SharedPreferences peepsScores2= PreferenceManager.getDefaultSharedPreferences(GamePlayFirst.this);
SharedPreferences.Editor editor2 =peepsScores2.edit();
String userScore11 = pScore1.getText().toString();
editor2.putString("userScore11",userScore11);
editor2.commit();
//getting it and editing it
SharedPreferences peepsScores2 = PreferenceManager.getDefaultSharedPreferences(this);
int u;
int one =1;
int newUsrScore1=1;
String userScore11 = peepsScores2.getString("userScore11",null);
u=Integer.parseInt(userScore11);
newUsrScore1 = u+one;
String newUserScore1 = Integer.toString(newUsrScore1);
SharedPreferences.Editor editor = peepsScores2.edit();
editor.putString(newUserScore1, NewUserScore1);
editor.commit();
//getting it and displaying it on the UI
SharedPreferences peepsScores2 = PreferenceManager.getDefaultSharedPreferences(this);
String userScore11 = peepsScores2.getString("NewuserScore1",null);
pScore1.setText(" "+userScore11);
I have added some comment to you code please check:
//putting the information in shared preferences
TextView pScore1=(TextView)findViewById(R.id.pScore1f);
SharedPreferences peepsScores2=
PreferenceManager.getDefaultSharedPreferences(GamePlayFirst.this);
SharedPreferences.Editor editor2 =peepsScores2.edit();
String userScore11 = pScore1.getText().toString();
editor2.putString("userScore11",userScore11);
editor2.commit();
//getting it and editing it
SharedPreferences peepsScores2 = PreferenceManager.getDefaultSharedPreferences(this);
int u;
int one =1;
int newUsrScore1=1;
String userScore11 = peepsScores2.getString("userScore11",null);
u=Integer.parseInt(userScore11);
newUsrScore1 = u+one;
String newUserScore1 = Integer.toString(newUsrScore1);
SharedPreferences.Editor editor = peepsScores2.edit();
//#Praful: here newUserScore1 seems to be integer value and you are storing
//null here. I think it it should be
//`editor.putString("NewuserScore1", newUsrScore1);`
editor.putString(newUserScore1, null);
//#Praful: call commit here
editor.commit;
//getting it and displaying it on the UI
SharedPreferences peepsScores2 = PreferenceManager.getDefaultSharedPreferences(this);
String userScore11 = peepsScores2.getString("NewuserScore1",null);
pScore1.setText(" "+userScore11);
This line
editor.putString(newUserScore1, null);
should be
editor.putString("NewuserScore1",newUserScore1);
and also don't forget to commit your changes using editor.commit();
Whenever you working with SharedPreference never forget to call commit() to save your changes.
SharedPreferences.Editor editor = peepsScores2.edit();
editor.putString("NewuserScore1", newUserScore1);
editor.commit();

Categories

Resources