0

因此,我将尝试提供尽可能多的信息来进行排序。我的应用程序包含一个实现了标准方法的数据库;检索一条记录或所有记录返回一个游标。

我的应用程序有一个 ListView、一个文本框和一个添加按钮。这是我想要实现的目标(请注意,第一个是最重要的):

  • 我想在 ListView 区域显示数据库的当前内容。
  • 我想让按钮将文本框中的任何内容插入数据库(并且 ListView 应该自动更新以显示插入)
  • 我希望能够点击 ListView 中的项目并将其从数据库中删除。

我试图通过将光标分配给 getAllRecords() 方法的返回来解决第一个要点;Cursor c = dba.getAllRecords();. 我已经厌倦了让它通过 for 循环添加字段条目,结果不太好。

    Button add;
    EditText tm;
    ListView lv;
    DBAdapter dba = new DBAdapter(this);

     @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_general);

            add = (Button) findViewById(R.id.button1);
            tm = (EditText) findViewById(R.id.editText1);
            lv = (ListView) findViewById(R.id.generalList);

            Cursor c = dba.getAllRecords();
            c.moveToFirst();

            // Trying to add database contents to ListView here.

            add.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    insertIntoDatabase();
                }
            });
        }
4

1 回答 1

0

如果你有一个来自数据库的游标并且想要显示到一个列表中,并且是一些简单的数据,比如一些文本值。看看 SimpleCursorAdapter。情况是这样的,您需要一个适配器,该适配器是从光标加载并推入代表相应列表项的布局的适配器。任何从 CursorAdapter 继承的东西都是好的。一切都取决于您需要多大的灵活性,因此您可以根据需要实施。这是我在 github 上发布的示例应用程序的片段。 https://github.com/soynerdito/trainningSample/blob/master/src/com/example/sample/app/Dashboard.java 该应用程序也在市场上。只是在“训练”期间使用的一个非常简单的应用程序,该应用程序称为“Nerdito Sample”,搜索它,尝试代码在 github 上。将项目添加到数据库并显示在列表中。样本:

Device device = new Device();
Cursor cursor = mdb.get(device);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
  android.R.layout.simple_list_item_2, cursor, new String[] {
  device.mDescription.mName, device.mDeviceID.mName },
  new int[] { android.R.id.text1, android.R.id.text2 }, 0);

// Create Cursor and set to List
mDeviceListView.setAdapter(adapter);
于 2012-08-24T01:18:49.727 回答