1

如何保存 ListView 并通过简历恢复它?因为当我关闭应用程序时,所有内容都会被删除。

感谢您的回答

公共类 ToDoList 扩展 Activity {

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ListView myListView = (ListView)findViewById(R.id.todolist);
    final EditText myEditText = (EditText)findViewById(R.id.addtodo);
    final ArrayList todoItems = new ArrayList();
    final ArrayAdapter aa;
    aa = new ArrayAdapter(this,
    android.R.layout.simple_list_item_1,
    todoItems);
    myListView.setAdapter(aa);

    String edittext="";
    SharedPreferences settings = getSharedPreferences("PreferencesName", 0);
    edittext = settings.getString("Content", edittext);
    todoItems.add(0, edittext);

    myEditText.setOnKeyListener(new OnKeyListener() {
    public boolean onKey(View v, int keyCode, KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN)
    if (keyCode == KeyEvent.KEYCODE_ENTER){
    todoItems.add(0, myEditText.getText().toString());
    aa.notifyDataSetChanged();

    String edittext= myEditText.getText().toString();
    SharedPreferences settings = getSharedPreferences("PreferencesName", 0);
    SharedPreferences.Editor editor = settings.edit();
    editor.putString("Content",  edittext);

    myEditText.setText("");
    return true;
    }
    return false;
    }
    });
    }}
4

1 回答 1

3

根据您给出的评论-关于关闭应用程序后丢失数据-您必须解决问题的选项很少。

您需要做的是存储您的数据以供进一步使用 - 您可以使用SharedPreferencesSQLite database.

共享首选项

对于少量数据是不错的选择。如果您尝试存储ListView的内容,SharedPreferences则很可能对您来说不是一个好选择。

此代码可用于将数据存储在您的SharedPreferences

SharedPreferences settings = getSharedPreferences("PreferencesName", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInteger("FirstInteger", a);
editor.putInteger("SecondInteger", b);
(...)

这就是您检索它的方式:

SharedPreferences settings = getSharedPreferences("PreferencesName", 0);
int a = settings.getInteger("FirstInteger", false);
int b = settings.getInteger("SecondInteger", false);

无论如何,您可以在这里阅读更多相关信息:http: //developer.android.com/guide/topics/data/data-storage.html

数据库

更适合大量数据。比较困难,但是如果你了解 MySQL 的基础知识,你使用它是没有问题的。有一个关于在 android 应用程序中使用 SQLite 数据库的很好的教程: http ://www.vogella.com/articles/AndroidSQLite/article.html

存储数据后,您可以访问本地存储以检索它们,重新填充适配器并重新创建ListView.

于 2013-01-21T21:57:24.523 回答