Здесь у меня есть блок кода, который передает информацию от текущей деятельности к другому:Общие предпочтения не работает для хранения/приема данных
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tutorial);
prefs = getSharedPreferences("com.amrapps.paneraautomate", MODE_PRIVATE);
name = (EditText) findViewById(R.id.name);
lastName = (EditText) findViewById(R.id.lastName);
password = (EditText) findViewById(R.id.password);
final CheckBox passwordReveal = (CheckBox) findViewById
(R.id.checkbox);
passwordReveal.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
} else {
password.setInputType(129);
}
}
});
}
public void continueButton(View v) {
String stringName = name.getText().toString();
String stringLastName = lastName.getText().toString();
String stringPassword = password.getText().toString();
SharedPreferences.Editor editor = prefs.edit();
prefs.edit().putString("name", stringName).commit();
prefs.edit().putString("lastName", stringLastName).commit();
prefs.edit().putString("password", stringPassword);
editor.commit();
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
Я пытаюсь использовать вошли туда данные в моем MainActivity как так:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
prefs = getSharedPreferences("com.mycompany.myAppName", MODE_PRIVATE);
name = prefs.getString("name", "");
lastName = prefs.getString("lastName", "");
password = prefs.getString("password", "");
// Check for null values and set default if empty
if (name == "") {
name = "Johnny";
}
if (lastName == "") {
lastName = "Appleseed";
}
if (password == "") {
password = "Asdf123";
}
к сожалению, каждый раз, когда он запускает его всегда задает имя для «Джонни Appleseed», даже если значение не равно нулю!
Первая вещь, которую Вы используете два различных файлы настроек. Следующее - это [вы неправильно сравниваете строки] (http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – codeMagic
О, боже мой, ты прав! Это очень смущает, потому что мы только что узнали об этой последней главе в моем классе AP Computer Science ...: ( – alex23434