Я новичок в разработке Android, и у меня проблема с сохранением изменений, когда некоторые тексты отображаются в некоторых TextViews. Но с одним мне сложнее. Для простого объяснения у меня есть 2 действия, Activity1 — основное, Activity2 — информация о пользователе. В Activity1 (Main) пользователь нажимает кнопку («логин»), затем переходит к Activity2, здесь пользователь может ввести свою личную информацию, и он нажимает кнопку («сохранить данные»), затем я добавляю свои данные в базу данных (SQLite) , затем, когда пользователь нажимает другую кнопку («перейти»), он возвращается в Activity1. Я использую намерение, чтобы показать его псевдоним в TextView в Activity1 с псевдонимом «Добро пожаловать» +. Но когда пользователь выходит из приложения, сохранения нет, изменение не сохраняется с никнеймом, но никнейм всегда в моей базе.
Я покажу вам код: Activity2:
public class ProfilActivity extends Activity {
EditText editNickname; // We just work on the nickname so I just keep it
MyDatabase myDb;
Button bAddData, go;
public SharedPreferences prefs;
private String nicktobesaved;
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_profil);
myDb = new MyDatabase(this);
prefs = getSharedPreferences("sharedPreferences", Context.MODE_PRIVATE);
editNickname = (EditText) findViewById(R.id.pseudo2);
bAddData = (Button) findViewById(R.id.ajouter);
nicktobesaved = prefs.getString("nickname", "");
bAddData.setEnabled(prefs.getBoolean("isEnabled", true) ? true : false);
AddData();
} // End onCreate()
public void changeNickname(View v) {
// I delete this method who passed an intent
}
public void AddData() { // When user click on bAddData button
bAddData.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
nicktobesaved = prefs.getString("nickname", "");
nicktobesaved = editPseudo.getText().toString();
// The following code is just for save data on my database SQLite
boolean isInserted = myDb.insertData(editNickname.getText().toString());
if (isInserted == true) {
Toast.makeText(ProfilActivity.this, "Data saved", Toast.LENGTH_LONG).show();
prefs.edit().putBoolean("isEnabled", false).apply();
bAddData.setEnabled(false);
} else {
Toast.makeText(ProfilActivity.this, "Data not saved", Toast.LENGTH_LONG).show();
}
}
}
);
}
}
Деятельность 1 (основная деятельность):
public class MainActivity extends Activity {
TextView tv;
Button login;
public SharedPreferences prefs;
private String nickname;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
prefs = getSharedPreferences("sharedPreferences", Context.MODE_PRIVATE);
nickname = prefs.getString("nickname", "");
login = (Button) findViewById(R.id.connexion);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentLogin = new Intent(MainActivity.this, ProfilActivity.class);
startActivity(intentLogin);
}
});
tv = (TextView)findViewById(R.id.pseudo);
if(nickname.equals("")) {
tv.setText("Welcome");
} else {
tv.setText("Welcome " + nickname);
}
}
}
Псевдо = псевдоним на французском, Bienvenue = добро пожаловать на французском, Спасибо всем за помощь, надеюсь, вы поняли мой вопрос. Пиккоро