フォームに入力する必要があり、「戻る」ボタンを押して保存します。たとえば、設定に保存します。または、ログに表示することもできます。
問題は、私が使用するときですonBackPressed()
-アクティビティは、実際にフィールドにあった結果ではなく、XML から結果onPause()
を返します。同じことが当てはまります。myEditText.getText().toString()
myEditText
onDestroy()
もちろん、アクティビティが実行されず、XML から結果を取得しないため、ハングした場合でもsomeButton.onClickListener()
データは適切に保存されますが、[戻る] ボタンを押して正確に保存する必要があります。myEditText
onPause()
コードは基本的なものです:
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()
私がそれを避ける必要があるという問題です。