0

ArrayAdapterを埋めるカスタムを作成しましたListView。アダプター内のデータは、サーバーから取得したPOJOのリストです。各POJOにはサーバーによって指定された一意のIDがあり、そのIDには影響しません。IDは内部使用のみを目的としており、のユーザーには表示されませんListView

私の意図:ユーザーがリスト内のアイテムをクリックした場合、IDをサーバーに戻したいと思います。最初のステップは、onItemClickListener:を作成することです。

ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void OnItemClick(AdapterView<?> parent, View view, int position, long id) {

    // call the server in a new thread

    // BUT: how do I get the POJO id from this position?

    }
}); 

私の問題は、POJOのIDを取得する方法がわからないことです。ユーザーには表示されないため、リスナーに渡されるTextViewにはありません。他のパラメーター(positionとid)も、私が必要としているものではないようです。説明:

  • position:アダプター内のビューの位置。
  • id:クリックされたアイテムの行ID。

私が言っていることをあなたが理解したことを願っています、そうでなければ教えてください。ありがとうございました!

4

3 に答える 3

4

は、parent.getItemIdAtPosition(int position)そのインデックスで pojo オブジェクトを提供します。

于 2012-06-02T18:51:14.567 に答える
3

それはあなたのアダプターがどのように機能するかに依存するでしょう。idパラメータは、アダプタが適応している項目の1つに対応ますこれとアダプタの動作に基づいてid、クリックされたビューによって表された元の論理アイテムを取得できます。

于 2012-06-02T18:47:07.703 に答える
2
@Override
public void OnItemClick(AdapterView<?> parent, View view, int position, long id) {

    Object item = parent.getAdapter().getItem(position);
}
于 2012-06-02T23:35:16.140 に答える