2012-03-25 57 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

相關問題