2014-04-26 4 views
0

Мне нужно сохранить состояние списка, когда приложение закроется (после поворота экрана). 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? Помогите пожалуйста ... Я хочу сохранить catnames) ps приложение расширяет SherlockActivity.

+0

Что вы считаете «государством»? При повороте экрана ваша деятельность разрушена и вновь создана, но ваше приложение продолжает работать. Он не закрывается. Что вы хотите точно? – greenapps

+0

Условие listview. Я заполняю его. После закрытия приложения мой список должен сохранять свое состояние. – Yaroslav

+0

@ Yaroslav Если я правильно понял, вы хотите, чтобы список выглядел так же, как и после того, как экран включен, когда он выключен? –

ответ

1

Для сохранения данных необходимо использовать базу данных SQLite. Когда приложение закроется, сохраните данные в базе данных. Когда приложение запускается, извлеките данные из базы данных. Все, что вам нужно научиться просто SQL :)

Это должно дать вам фору: http://www.vogella.com/tutorials/AndroidSQLite/article.html

Update:
Если вы хотите использовать onSavedInstanceState(), то вам нужно использовать Bundle S, которые, в простых терминах, пары ключ-значение.

Как только вы получите свой адаптер для заполнения данных, просто используйте setSelection() или smoothScrollToPosition(), чтобы перейти к нужному элементу. Это означает, что текущая позиция списка при выключенном экране. Для этого вам нужен метод getFirstVisiblePosition(). Это будет сохранено в вашем Bundle, и это то, что вы будете использовать, когда ваш экран снова появится.

+0

Спасибо :) Но я хотел бы увидеть метод без использования SQL :) – Yaroslav

+0

@Yaroslav Посмотрите мое обновление :) –

+0

Я понимаю, но я хотел бы увидеть пример :) – Yaroslav

 Смежные вопросы

  • Нет связанных вопросов^_^