如何从listview中的edittext创建数据进入数据库?

时间:2012-03-25 22:33:46

标签: java android listview

我有一个列表视图,其中包含编辑文本字段

http://i.stack.imgur.com/j9mxK.png

基本上我想要做的是将编辑文本中的位放入数据库中。 这是我到目前为止的代码

Cursor data = database.query(“names”,fields,null,null,null,null,                 空);

    dataSource = new SimpleCursorAdapter(this, R.layout.row, data, fields,
            new int[] { R.id.first, R.id.entry2 });

    ListView view = getListView();

    setListAdapter(dataSource);

    editText1 = (EditText) findViewById(R.id.entry2);
    editText1.requestFocus();
    OnKeyListener myKeyListener = new OnKeyListener() {

        @Override
        public boolean onKey(View arg0, int KEYCODE_ENTER, KeyEvent arg2) {
            Log.v("Me","Something happened :: ");
            ContentValues values = new ContentValues();
            values.put("last", editText1.getText().toString());
            database.insert("names", null, values);
            return false;
        }
    };
    editText1.setOnKeyListener(myKeyListener);
}

我在最后一行“editText1.setOnKeyListener(myKeyListener);”上得到一个空指针异常。所以我不认为它实际上是从row.xml布局中找到编辑文本。

所以如何制作它以便我可以在列表视图的编辑文本中输入内容,然后在输入命中时将其放入数据库?

1 个答案:

答案 0 :(得分:1)

您必须处理列表视图中的每个文本项。您使用此代码所做的就是将第一个字段放入数据库。要完成剩下的工作,您必须“滚动”ListView的其余子项,获取它们的值,并将它们放入数据库中。

但是,我不确定你为什么要这样做。您是从某个地方显示数据,然后您想按一个键并将其全部显示在数据库中?为什么不直接从源头移动到数据库中?你仍然可以显示它。或许我错过了一些东西。