我有一个列表视图,其中包含编辑文本字段
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布局中找到编辑文本。
所以如何制作它以便我可以在列表视图的编辑文本中输入内容,然后在输入命中时将其放入数据库?
答案 0 :(得分:1)
您必须处理列表视图中的每个文本项。您使用此代码所做的就是将第一个字段放入数据库。要完成剩下的工作,您必须“滚动”ListView的其余子项,获取它们的值,并将它们放入数据库中。
但是,我不确定你为什么要这样做。您是从某个地方显示数据,然后您想按一个键并将其全部显示在数据库中?为什么不直接从源头移动到数据库中?你仍然可以显示它。或许我错过了一些东西。