1

onItemClickリスナーがあり、id値を使用したいと思います。しかし、それは位置と同じ価値を持っています。

public void onItemClick(AdapterView<?> a, View view, int position, long id) {
    DBh.something(id);
}

それと同様にカスタムArrayAdapterを使用しています: カスタムアダプタとリストビューを備えたonItemClickListener

row.setId()を使用しようとしましたが、その整数は長くありません。

4

2 に答える 2

5

私はあなたがこれをやろうとしている理由を尋ねていません(あなたはおそらくあなたの理由があります)ので、それを行う方法を説明します。すでにカスタムアダプタを実装しているので、必要なのはgetItemIdメソッドをオーバーライドすることだけです。

@Override
public long getItemId(int position) {
    //return ID based on the position
    return ...;
}

次に、この値はアイテムIDを受け取る他のメソッドに渡されます。位置からIDを取得する方法を知っている場合は、onItemClickListener位置がそこに渡されるので、でまっすぐにそれを行うことができることに注意してください。

于 2012-09-18T13:24:56.030 に答える
1

何を達成したいですか?アダプタでは、「getItemId(int position)」をオーバーライドして、アイテムに指定するIDを返すようにすることができます。しかし、なぜid値を使用するのか、単に位置を使用しないのはなぜですか?

于 2012-09-18T13:24:12.723 に答える