我有一些列表活动,一个通向另一个。每当我按下返回并返回上一个列表活动,然后再次返回此活动时,它将重新执行整个onCreate处理。
如何让它记住加载到列表中的数据?
public class Modules extends ListActivity {
PortalHandler portalHandler;
Login login;
ArrayList<String> menuItems;
Document portal;
String portalHtml;
Elements modules;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
menuItems = new ArrayList<String>();
Bundle extras = getIntent().getExtras().getBundle("extras");
portalHtml = extras.getString("portalHtml");
portal = Jsoup.parse(portalHtml);
modules = portal.select(".courselink ");
for (int i = 0; i < modules.size(); i++) {
menuItems.add(modules.get(i).text()
.substring(0, modules.get(i).text().indexOf("(")));
}
setListAdapter(new ArrayAdapter<String>(this, R.layout.modules,
menuItems));
ListView listView = getListView();
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
}
});
}
}
答案 0 :(得分:1)
尝试在清单文件中添加android:configChanges="keyboardHidden|orientation"
其次,在onStart()和onResume()中什么都不做。 像这样打电话给你的活动:
Intent i = new Intent(Second.this,First.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
希望这有帮助!
答案 1 :(得分:0)
您可以在共享首选项中保存数据,也可以通过onSaveInstanceState()使用保存的实例状态,然后可以访问savedInstanceState Bundle上的数据,该数据是onCreate()方法的参数。