我有一个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