-2

カスタムListView(カスタムとは、特定のレイアウトを意味します)にjsonリクエストを入力しています.OnItemClickListenerを実装したいと思います。だから私はそれをしました:

ListView lv = (ListView) findViewById(R.id.MessageList);
    lv.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {


        }
    });

私の問題は、ListView の選択された項目を利用したいのですが、どの項目が選択されているか (最初の項目、2 番目の項目など) しかわかりません。データベースの ID (主キー i json deserialize で得たもの) を ListView ID などと一緒に使用します。

これを行う方法はありますか?

よろしくお願いします。

4

3 に答える 3

0

ビューを作成するときに、データベース ID をビューのタグとして設定します。onclick で arg1.getTag() を呼び出して、その値を取得できます。

于 2013-06-14T15:16:48.560 に答える
0

MyClassWithGettersSetters必要なデータベース ID が含まれていることを確認してください。

次に、次のようなアイテムにアクセスできます。

ListView lv = (ListView) findViewById(R.id.MessageList);
lv.setAdapter(myAdapter);
lv.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        MyClassWithGettersSetters objectClicked = (MyClassWithGettersSetters) myAdapter.getItem(arg2);
        Log.d(TAG, "Clicked on object: " + objectClicked);
        objectClicked.getDBID(); // you now have access to the specific object and id
        // do whatever you need to do
    }
});
于 2013-06-14T15:34:10.350 に答える