必要なすべてのインポートが追加されます。SharedPreferencesコードが意図したとおりに動作しない
public class MainActivity extends AppCompatActivity {
SharedPreferences preferences;
SharedPreferences.Editor editor;
public int i;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
preferences = getSharedPreferences("MyPrefs", MODE_PRIVATE);
editor = preferences.edit();
初めての起動中にメッセージ「初回ブート」が表示されますが、sharedPreferencesに保存された私は、表示されますイテレータの代わりに、次の時間帯に表示されません。
try{
i = preferences.getInt("iterator", 0);
Toast.makeText(getApplicationContext(), i, Toast.LENGTH_SHORT).show();
}catch(Exception e){
Toast.makeText(MainActivity.this, "First time boot", Toast.LENGTH_SHORT).show();
}
final TextView date = (TextView) (findViewById(R.id.textView));
final Calendar c = Calendar.getInstance();
date.setText(DateFormat.getDateFormat(this).format(c.getTime()));
final Button mainBtn = (Button) findViewById(R.id.mainBtn);
final Button exit = (Button) findViewById(R.id.exit);
mainBtn.setText("Clock In");
mainBtn.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
if(mainBtn.getText() == "Clock In"){
mainBtn.setText("Clock Out");
}else{mainBtn.setText("Clock In");}
String s = new SimpleDateFormat("yyyy: MM: dd HH: mm: ss").format(Calendar.getInstance().getTime());
私の考えでは、ボタンをクリックすると、後でアクセスできるsharedPreferencesファイルにタイムスタンプが保存されます。
editor.putString("Time "+ i, s);
i++;
editor.putInt("iterator", i);
}
});
あなたは終了]ボタンをクリックすると、sharedPreferencesファイルに入れ、すべてが保存されるように、私は最近、これを追加しました。 (以前のeditor.commit()行はmainBtnのonClickListenerの内側にありました)。
exit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editor.commit();
finish();
}
});
}
問題ではなく、それだけで「初回ブート」と言い、アプリを終了して再起動し、それにより、アプリがsharedPreferencesファイルに保存することになっていた格納されたデータを、取得していないということです毎回プログラミングを始めたばかりで、この問題を複数の方法で克服しようとしましたが、同じ問題に遭遇しました。助けて!