应用程序关闭时(转动屏幕后)保存列表视图的状态

时间:2014-04-26 07:31:21

标签: android listview sharedpreferences savestate

我需要在应用程序关闭时(转动屏幕后)保存listview的状态。 SQL不想使用。我知道有标准方法:SharedPreferences,onSaveInstanceState。我的代码是:

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //-----------listitem------------
    ListView listView = (ListView) findViewById(R.id.listView1);

    catnames = new ArrayList<String>();
    adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, catnames);
    listView.setAdapter(adapter);

        listView.setAdapter(adapter);
    }

并将适配器

catnames.add(0, name);
adapter.notifyDataSetChanged();

也许我不应该使用ArrayAdapter?请帮忙 ... 我想保存猫咪名字) ps应用程序扩展了SherlockActivity。

1 个答案:

答案 0 :(得分:1)

您需要使用SQLite数据库来保存数据。应用程序关闭时,将数据保存到数据库。应用程序启动时,从数据库中检索数据。您需要学习的只是简单的SQL :)

这应该让你先行一步:http://www.vogella.com/tutorials/AndroidSQLite/article.html

<强>更新
如果您希望使用onSavedInstanceState(),那么您需要使用Bundle s,简单来说就是键值对。

让适配器填充数据后,只需使用setSelection()smoothScrollToPosition()转到所需的元素即可。这意味着当您的屏幕熄灭时,您将看到列表的当前位置。为此,您需要getFirstVisiblePosition()方法。这将保存在您的Bundle中,这将是您重新开启屏幕时使用的内容。