我正在爲夏令營創建一個考勤跟蹤器,在這裏輔導員可以通過鍵入editText
並按下保存按鈕來輸入他們的露營者登錄的時間。 這個基本的字符串應該被保存到一個文本框中,並且每次應用程序被加載時加載到屏幕上。有多個這樣的盒子,所以輔導員可以跟蹤每個學生每天進/出的次數。屏幕上顯示的共享首選項
我已經使用sharedPreferences
在按下按鈕時保存顧問的輸入,然後使用另一個按鈕顯示它。但是,當我關閉並重新打開APP時,無法將文字放到屏幕上。我的代碼丟失了什麼?
public class AttendancePage extends AppCompatActivity {
EditText mondayMorn;
TextView displayMonMorn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_attendance_page);
String counsellorName = getIntent().getStringExtra("Senior Counsellor Name");
TextView tv = (TextView)findViewById(R.id.counsellorName);
tv.setText(counsellorName + "'s");
mondayMorn = (EditText) findViewById(R.id.editText37);
displayMonMorn = (TextView) findViewById(R.id.displayMonMorn);
}
public void saveInput (View view) {
SharedPreferences checkInMon = getSharedPreferences("LoginTime", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = checkInMon.edit();
editor.putString("mondayIn", mondayMorn.getText().toString());
editor.apply();
Toast.makeText(this, "Saved", Toast.LENGTH_LONG).show();
}
public void updateSettings (View view){
SharedPreferences checkInMon = getSharedPreferences("LoginTime", Context.MODE_PRIVATE);
String time = checkInMon.getString("mondayIn", "");
displayMonMorn.setText(time);
}
嘗試使用commit()方法保存共享首選項文件。 – Popeye
你在哪裏調用'saveInput(...)'?由於您顯然沒有使用數據綁定庫,並且無法在您的代碼中找到它,您確定點擊偵聽器是否已正確設置? –
你說得對,我沒有妥善設置它。再次像我說的,我的信息不會保存到sharedPreferences中,但在應用程序關閉後不會保持顯示狀態。 – user8384402