1
以下に定義されているsharedpreferenceからNameの値をロードしたいと思います。 Nameの値を抽出してそれをトーストするか、理想的にはテキストフィールドに入れてもいいですか?sharedpreferencesから値を取得できません
public class FillingActivity extends Activity{
TextView username;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.foodandexercise);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
String user = prefs.getString("namepref", "");
Toast.makeText(FillingActivity.this, user, Toast.LENGTH_LONG).show();
username = (TextView) findViewById(R.id.loggedastoedit);
username.setText("najib");
}
}
、ここでは私のSharedPreferencesクラスです
パブリッククラスProfilePreferenceActivityアクティビティあなたは両方の場所でgetDefaultSharedPreferences()
またはgetSharedPreferences("myCustomSharedPrefs",...)
を使用する必要がありますいずれかの{
DatabaseAdapter usertable = new DatabaseAdapter(this);
float calnum, bmr;
String level, gender;
int Age, Height, Weight, temp;
RadioButton rb_male;
RadioButton rb_female;
RadioButton rb_light;
RadioButton rb_moderate;
RadioButton rb_heavy;
EditText name;
EditText age, weight, height;
RadioGroup genderradiogroup;
RadioGroup levelofactivity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.createprofile);
SharedPreferences customSharedPreference = getSharedPreferences(
"myCustomSharedPrefs", Activity.MODE_PRIVATE);
name = (EditText) findViewById(R.id.namefield);
name.setText("");
age = (EditText) findViewById(R.id.agefield);
age.setText("");
genderradiogroup = (RadioGroup) findViewById(R.id.radioGroup2);
rb_male = (RadioButton) findViewById(R.id.maleradiobutton);
rb_female = (RadioButton) findViewById(R.id.femaleradiobutton);
genderradiogroup.check(customSharedPreference.getInt("genderprefs",
rb_male.getId()));
genderradiogroup.check(customSharedPreference.getInt("genderprefs",
rb_male.getId()));
weight = (EditText) findViewById(R.id.weightfield);
weight.setText("");
height = (EditText) findViewById(R.id.heightfield);
height.setText("");
levelofactivity = (RadioGroup) findViewById(R.id.radioGroup3);
rb_light = (RadioButton) findViewById(R.id.lightradiobutton);
rb_moderate = (RadioButton) findViewById(R.id.moderateradiobutton);
rb_heavy = (RadioButton) findViewById(R.id.heavyradiobutton);
levelofactivity.check(customSharedPreference.getInt("levelpref",
rb_light.getId()));
try {
Age = Integer.parseInt(age.getText().toString());
Weight = Integer.parseInt(weight.getText().toString());
Height = Integer.parseInt(height.getText().toString());
} catch (Exception e) {
}
Button addUser = (Button) findViewById(R.id.checkcreateprofilebutton);
addUser.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
savePreferences();
float calnumber = calculateCalories(Age, Weight, Height);
String lala = String.valueOf(calnumber);
Toast.makeText(ProfilePreferenceActivity.this, lala,
Toast.LENGTH_LONG).show();
usertable.open();
long id = usertable.createUser(name.getText().toString(), age
.getText().toString(), gender, weight.getText()
.toString(), height.getText().toString(), level,
calnumber);
Toast.makeText(ProfilePreferenceActivity.this,
"user added with" + level + gender, Toast.LENGTH_LONG)
.show();
usertable.close();
Intent Filling = new Intent();
Filling.setClass(ProfilePreferenceActivity.this,
FillingActivity.class);
startActivity(Filling);
}
});
}
private void savePreferences() {
SharedPreferences customSharedPreference = getSharedPreferences(
"myCustomSharedPrefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = customSharedPreference.edit();
editor.putString("namepref", name.getText().toString());
editor.putString("agepref", age.getText().toString());
editor.putInt("genderprefs", genderradiogroup.getCheckedRadioButtonId());
editor.putString("heightpref", height.getText().toString());
editor.putString("weightpref", weight.getText().toString());
editor.putInt("levelpref", levelofactivity.getCheckedRadioButtonId());
editor.putFloat("calpref", calnum);
editor.commit();
finish();
}
public float calculateCalories(int age, int weight, int height) {
if (rb_male.isChecked()) {
gender = "male";
bmr = 66.5f + (13.75f * weight) + (5.003f * height)
- (6.755f * age);
if (rb_light.isChecked()) {
level = "light";
calnum = bmr * 1.375f;
}
if (rb_moderate.isChecked()) {
level = "moderate";
calnum = bmr * 1.55f;
}
if (rb_heavy.isChecked()) {
level = "heavy";
calnum = bmr * 1.725f;
}
} else if (rb_female.isChecked()) {
gender = "female";
bmr = 665 + (9.563f * weight) + (1.850f * height) - (4.676f * age);
if (rb_light.isChecked()) {
level = "light";
calnum = bmr * 1.375f;
}
if (rb_moderate.isChecked()) {
level = "moderate";
calnum = bmr * 1.55f;
}
if (rb_heavy.isChecked()) {
level = "heavy";
calnum = bmr * 1.725f;
}
}
return calnum;
}
}
私は両方の場所で 'getDefaultSharedPreferences()'または 'getSharedPreferences(" myCustomSharedPrefs "、...)を使うべきだと思います。そうすることで、さまざまな共有設定を作成(AFAIK)できます。 – zapl
答えを@zaplに移動したいですか?それが解決策です。 –
私はそれを今得ました。どうもありがとう、あなたはそれを答えに移すことができ、私は検証します。 – callback