如何在不重新加载和重新处理数据的情况下恢复活动?

时间:2012-05-21 18:15:48

标签: java android

我有一些列表活动,一个通向另一个。每当我按下返回并返回上一个列表活动,然后再次返回此活动时,它将重新执行整个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) {

            }
        });

    }

}

2 个答案:

答案 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()方法的参数。