如何在Android中节省ListView的价值

时间:2017-11-23 18:06:27

标签: java android listview

我最近在android studio中处理todo列表应用程序,用户将通过EditText输入文本,然后将String添加到listView,如下所示。

public class MainActivity extends AppCompatActivity {

private ArrayList<String> items;
private ArrayAdapter<String> itemsAdapter;
private ListView lvItems;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    lvItems = (ListView) findViewById(R.id.lvItems);
    items = new ArrayList<>();
    itemsAdapter = new ArrayAdapter<>(this,
            android.R.layout.simple_list_item_1, items);
    lvItems.setAdapter(itemsAdapter);

    }



private void setupListViewListener() {
    lvItems.setOnItemLongClickListener(
            new AdapterView.OnItemLongClickListener() {
                @Override
                public boolean onItemLongClick(AdapterView<?> adapter,
                                               View item, int pos, long id) {
                    // Remove the item within array at position
                    items.remove(pos);
                    // Refresh the adapter
                    itemsAdapter.notifyDataSetChanged();
                    return true;
                }

            });
}




public void addTask(View v) {
    AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
    LayoutInflater inflater = this.getLayoutInflater();
    final View dialogView = inflater.inflate(R.layout.dialog, null);
    dialogBuilder.setView(dialogView);

    final EditText edt = (EditText) dialogView.findViewById(R.id.edit1);

    dialogBuilder.setTitle("Add a New Task");
    dialogBuilder.setMessage("Enter what you want to do");
    dialogBuilder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            String itemText = edt.getText().toString();
            itemsAdapter.add(itemText);
            edt.setText("");
        }
    });
    dialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {

        }
    });
    AlertDialog b = dialogBuilder.create();
    b.show();
  }

}

但我遇到的问题是,当用户关闭活动时,ListView的状态将变回原来的值。

我希望ListView保留活动关闭时放入其中的信息。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

有很多方法可以在您的应用中保存数据。

您可以使用以下选项:

  • SharedPreferences
  • 文件
  • SQLite(使用普通的sql或使用框架Room)

有关详细信息,请访问以下链接:https://developer.android.com/training/data-storage/index.html

答案 1 :(得分:0)

通常使用 Sqlite 来处理这种情况 但您可以使用其他方式,例如共享偏好文件

您可以在此处看到:https://developer.android.com/guide/topics/data/data-storage.html