【发布时间】:2013-11-10 13:58:13
【问题描述】:
我需要填写表格并按“返回”按钮将其保存到首选项中。 甚至将其显示给 Log。
问题是当我使用 onBackPressed() 时 - 活动转到 onPause() 并且 myEditText.getText().toString() 从 XML 返回结果,而不是实际在 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() 的问题,我需要避免它。
【问题讨论】:
-
将编辑文本保存在
onPause()中有效。 “来自 xml 的结果”是什么意思?另外,请在问题中包含相关代码。 -
顺便说一句,您可以在使用 TextWatcher 按下按钮时保存文本。
-
laalto,我编辑了 - 这是我的部分代码
标签: android android-edittext gettext