Вероятно, потому что, как только вы нажмете один раз, у вас есть редактор, который был уже зафиксирован.Вы можете пойти наполовину и сделать что-то вроде:
public class FormEdit extends Activity {
SharedPreferences myPref = getSharedPreferences("PrefData", MODE_PRIVATE );
@Override
public void onCreate(Bundle savedInstanceState) {
...
Button btnSave = (Button) findViewById(R.id.btnSave);
btnSave.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
SharedPreferences.Editor myPrefEditor = myPref.edit();
myPrefEditor.putString("Key", value);
myPrefEditor.commit();
Обновление:
Ах, я не думал об этом достаточно внимательно.Эта строка:
SharedPreferences myPref = getSharedPreferences("PrefData", MODE_PRIVATE );
У вас будут проблемы с запуском до создания вашей активности.Перемещение на ваш onCreate должно помочь.Если у вас возникнет вопрос о сбое, сделайте привычкой публиковать трассировку стека, это поможет сузить проблему намного быстрее.
public class FormEdit extends Activity {
SharedPreferences myPref;
@Override
public void onCreate(Bundle savedInstanceState) {
...
myPref = getSharedPreferences("PrefData", MODE_PRIVATE );
Button btnSave = (Button) findViewById(R.id.btnSave);
btnSave.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
SharedPreferences.Editor myPrefEditor = myPref.edit();
myPrefEditor.putString("Key", value);
myPrefEditor.commit();