2012-08-24 61 views
0

因此,我想给尽可能多的信息来获得这个排序。我的应用程序包含一个实施了标准方法的数据库;检索记录或所有记录返回一个Cursor。通过光标将数据库的内容添加到ListView

我的应用程序有一个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(); 
       } 
      }); 
     } 
+0

我会serously建议你通过一些Android教程工作。一个'ListView'几乎只需要一件东西来自动填充和管理它的内容 - 一个适配器。之后,工作完成了。正如soynerdito指出的那样,SimpleCursorAdapter将从数据库查询中管理结果集。找到一些关于如何使用它的教程,你应该去设置。 – Squonk

回答

0

如果你有一个来自数据库的光标,并且显示为一个列表,并且是简单的数据,就像一些文本值。看看SimpleCursorAdapter。 情况是这样的,您需要一个适配器,适配器是从光标加载并推入表示对应列表项目的布局的适配器。从CursorAdapter继承的任何东西都是很好的。所有这一切取决于您需要多大的灵活性,所以您可以根据需要实施。 这是我在github发布的一个示例应用程序的snnipet。 https://github.com/soynerdito/trainningSample/blob/master/src/com/example/sample/app/Dashboard.java 此外,该应用程序在市场上。只是一个非常简单的应用程序在“训练”应用程序被称为“Nerdito示例”搜索它,尝试和代码是在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);