2012-03-25 56 views
0

我有编辑文本字段列表视图像这样如何使数据从listview中的edittext进入数据库?

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

,基本上我想做的事是在编辑文本的位被放入数据库中。 这里是我到目前为止的代码

光标数据= database.query( “名”,字段,NULL,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

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

虽然我不确定你为什么想要这样做。你正在显示某处的数据,然后你想按下一个键并将其全部显示在数据库中?为什么不直接将它从源代码移动到数据库中?你仍然可以显示它。或者也许我错过了一些东西。

+0

基本上我想要做的是有一个人的名字,然后能够输入一个值旁边,然后进入数据库的名称。我发现它从来没有真正进入列表视图中的行(它只发生在标题中)。所以我的问题更多的是如何做到这一点,当我在列表视图行中的编辑文本中键入东西,并按下输入它做一些事情(即进入数据库),它似乎只是略过onkeylistener位 – kennie 2012-03-26 10:43:21

相关问题