我有一個ListView(ItemsActivity)活動,其內容來自JSON API。當我在ListView中的一個項目中按下時,它將加載另一個具有詳細信息的活動(DetailActivity)。問題是,當我按下後退按鈕時,ItemsActivity會重新加載ListView。活動重新加載每次
我不知道在哪裏可以找到關於此的更多信息。我來自iOS,前一個屏幕不會每次都重新加載。
我想保留活動之間的ListView數據。我測試從onResume()調用loadListItems()方法,但結果相同。
這裏是我的代碼簡短示例。任何幫助和建議將非常感激。
/* ItemsActivity.java */
public class ItemsActivity extends AppCompatActivity {
private ListView listItemView;
private Movie[] movies;
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recycler);
listItemView = (ListView) findViewById(R.id.listItemView);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
loadListItems();
}
private void loadListItems(){
// Http call
...
// Iterate JSON and saving to movies array
...
progressBar.setVisibility(INVISIBLE);
ListAdapter adapter = new ListAdapter(ItemsActivity.this, movies);
listItemView.setAdapter(adapter);
}
/* Adapter Class */
@Override
public void onClick(View v) {
Intent i = new Intent(this, DetailActivity.class);
i.putExtra("item_id", 1);
startActivity(i);
}
}
我剛剛測試了一個帶有2個活動,ActivityOne和ActivityTwo的新項目。 ActivityOne有一個按鈕,當按下它的加載ActivityTwo並且當我按下後退按鈕時,在ActivityOne中再次調用onCreate()方法。
你可以嘗試把onCreate()和一個onResume()中的日誌看看它是否每次都被調用? – Pablo
你可以發佈你的第二個活動代碼嗎?我想你會再次開始ActivityOne,而不是完成ActivityTwo。因爲從ActivityTwo返回時不應調用onCreate()。 – Rami