我需要在应用程序关闭时(转动屏幕后)保存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。
答案 0 :(得分:1)
您需要使用SQLite
数据库来保存数据。应用程序关闭时,将数据保存到数据库。应用程序启动时,从数据库中检索数据。您需要学习的只是简单的SQL :)
这应该让你先行一步:http://www.vogella.com/tutorials/AndroidSQLite/article.html
<强>更新强>
如果您希望使用onSavedInstanceState()
,那么您需要使用Bundle
s,简单来说就是键值对。
让适配器填充数据后,只需使用setSelection()
或smoothScrollToPosition()
转到所需的元素即可。这意味着当您的屏幕熄灭时,您将看到列表的当前位置。为此,您需要getFirstVisiblePosition()
方法。这将保存在您的Bundle
中,这将是您重新开启屏幕时使用的内容。