2012-03-25 6 views
0

は、私はそうリストビューのedittextからデータをデータベースに入れるにはどうしたらいいですか?

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

などの編集テキストフィールドとリストビューを持っており、基本的に私は何をしたいのデータベースに入れることがエディットテキストのビットのためです。 ここまでは私のコードです

カーソルデータ= database.query( "names"、fields、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); 
} 

最後の行でnullポインタ例外が発生する "editText1.setOnKeyListener(myKeyListener);"だから私は実際には、行のレイアウトから編集のテキストを見つけると思います。

私はそれをどのようにしてリストビューの編集テキストに入力し、入力がヒットしたときにそれをデータベースに入れることができますか?

答えて

1

各テキスト項目をリストビューで処理する必要があります。このコードでやっているのは、最初のフィールドをデータベースに入れることだけです。残りの作業を行うには、ListViewの残りの子を「スクロール」して値を取得し、データベースに格納する必要があります。

なぜあなたはこれをやりたいのか分かりません。あなたはどこかからデータを表示していますが、1つのキーを押して、すべてをデータベースに表示させたいのですか?そのソースからデータベースに直接移動してみませんか?あなたはまだそれを表示することができます。それとも、私は何かを逃しています。

+0

私がやりたいことは基本的には人名を持っていて、隣にある値を入力することができ、その名前でデータベースに入ります。それは実際にはリストビューの行には行かなかったことが分かりました(ヘッダー内でのみ発生しました)。私の質問は、リストビューの行の編集テキストに何かを入力し、Enterキーを押して何かを行う(つまりデータベースに移動する)と、onkeylistenerビットをスキップするように見えるようにする方法です – kennie

関連する問題