我需要填写表格并按“返回”按钮将其保存到偏好设置中。甚至将其显示给 Log。
问题是当我使用onBackPressed()
- 活动从 XML 中返回onPause()
并myEditText.getText().toString()
返回结果,而不是实际在myEditText
字段中的结果。同样的事情onDestroy()
。
当然,如果我挂起someButton.onClickListener()
它,它可以很好地保存我的数据,myEditText
因为 Activity 不会去onPause()
并且不会从 XML 中获取结果,但是我需要通过按下后退按钮来准确地保存它。
代码是基本的:
EditText etCompetitionName;
Competition competition;
etCompetitionName=(EditText) findViewById(R.id.etCompetitionName);
Intent intent=getIntent();//I get number of object to work with
pos=intent.getIntExtra("pos", -1); // this is this number
competition=getObject(pos);// well, this is loading this object
olDetCompetitionName=competition.getName();//getting name from loaded object
etCompetitionName.setText(olDetCompetitionName);//set this text to EditText field
...
then :
protected void onDestroy() {
super.onDestroy();
//try to save
competition.setName(etCompetitionName.getText().toString());
saveObject(competition);
}
因此,它保存了旧值,即我在开始时设置的值。如果我不设置它 - 它将从布局 xml 中获取。这是onPause()
我需要避免它的问题。