私はほぼ完成していて、この小さなことが私をとても悩ませているので、助けていただければ幸いです!
データベースのクエリからデータをonCreate()
入力する3 つのアクティビティのうちの 1 つがあります。TextView
この活動も主な活動です。以下のコードが示すように、アクション バーを介して移動する他の 2 つのアクティビティ。私はここで と の両方savedInstanceState()
をonRestoreInstanceState()
使用しており、アプリケーションを完全に終了したときにのみ機能しますが、これは良いことですが、actionBar から別のアクティビティに移動したときにTextView
、データベース。textview
アクションバーを離れるたびにまったく新しいクエリが発生するので、離れるときと同じにしたいのですが、それは望ましくtextView
ありません。ユーザーが最初に到着したときの最初のクエリの結果を保持したい。
finish()
およびonStop()
メソッドを使用してアクティビティを終了させようとしたためsaveOnInstanceState()
、アクティビティが破棄されたときに呼び出されましたが、動作していないか、適切な場所に配置していません。何か考えてください?!?!?!
onCreate() での savedInstanceState の適用:
if(savedInstanceState != null){
String SavedStory = savedInstanceState.getString(SavedStoryHere);
String SavedTitle = savedInstanceState.getString(SavedTitleHere);
OpenningTextView.setText(SavedStory);
TitleTextView.setText(SavedTitle);
}
else{
OpenningTextView.setText(StoryText);
TitleTextView.setText(TitleString);
}
onSavedInstanceState() と onRestoreInstanceState():
protected void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
String text = OpenningTextView.getText().toString();
String titleText = TitleTextView.getText().toString();
savedInstanceState.putString(SavedStoryHere, text);
savedInstanceState.putString(SavedTitleHere, titleText);
}
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
OpenningTextView.setText(savedInstanceState.getString(SavedStoryHere));
TitleTextView.setText(savedInstanceState.getString(SavedTitleHere));
}
ActionBar を介してさまざまなアクティビティに移動します。
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.Openning_Screen:
Toast.makeText(this, "This is the Story of the Day", Toast.LENGTH_SHORT)
.show();
return true;
case R.id.The_List:
Intent A_ListIntent = new Intent(this, A_Where_List.class);
startActivity(A_ListIntent);
return true;
case R.id.Settings:
Intent SavedStoriesIntent = new Intent(this, Settings.class);
startActivity(SavedStoriesIntent);
return true;
default:
return super.onOptionsItemSelected(item);
}