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

あなたが与えたコメントによると-アプリケーションを閉じた後にデータを失うことについて-あなたがあなたの問題を解決しなければならないいくつかのオプションがあります。

あなたがしなければならないことは、さらに使用するためにデータを保存することです-あなたはまたはを使用することができSharedPreferencesますSQLite database

SharedPreferences

少量のデータに適しています。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 に答える