0

SQL データベースのListView lvを使用してデータを入力する があります。Cursor cただし、項目が選択されている場合は、行の ID を取得する必要があります。これどうやってするの?

4

2 に答える 2

2

SimpleCursorAdapter(または同様のもの)を使用していると想定しているので、OnItemClickListenerを使用します。

listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        // id references the SQLiteDatabase _id column
    }
});
于 2012-09-04T17:50:53.697 に答える
1

これが私にとってどのように機能したかです。他のクラスでは、List タイプのメソッドを作成し、列 ID と項目の名前を sqlite データベースからリストに追加しました。

選択した項目の列 ID を取得するコードは次のとおりです。

    public List<String> list;
    adapt = new MyAdapter(this, R.layout.list_inner_view, list); //custom adapter
    listTask.setAdapter(adapt);

    listTask.setOnItemClickListener(new AdapterView.OnItemClickListener() {
       @Override
       public void onItemClick(AdapterView<?> adapterView, View v, int position, long l) {

           Integer id = list.get(position).getId();
          //position is the position of the item in the list.
       }
   });

結果: 項目はリストの 3 番目の位置にあります。以前の項目を削除したため、データベースの column_id (自動インクリメント) の値は 12 です。したがって、期待される結果は変数 id の値である 12 です。

これを完全に理解していない場合は、コード全体を投稿していないことが原因である可能性があります。しかし、私はあなたの問題を解決するお手伝いをします。

于 2015-02-10T09:07:39.163 に答える