Android ListView
を使用して作成され、画面に収まらないほど多くのアイテムが含まれるSimpleAdapter
があります。リストをスクロールした後、リスト内の最初の表示項目のデータモデル内の位置を取得します。
基本的に、listView.getChildAt(0).getPositionInDataModel()
のような関数が必要です。
Adapter
には、getItemId(position)
のように便利な関数がいくつかあります。ただし、SimpleAdapter
実装は、期待どおりの行IDではなく、渡された位置を返すだけです。
総当たりの解決策は、インデックス0でビューを取得し、アダプター内の各アイテムのビューと比較することです。ただし、アダプターから特定の位置のビューを取得する簡単な方法はないようです。
誰もが考えている?
それは非常に簡単です。 ListView.getFirstVisiblePosition() + indexYouWant
を使用してください。たとえば、ListView
に表示されている2番目の子のアダプターの位置を取得するには、getFirstVisiblePosition() + 1
を使用します。
上記の返信に示されているすべての恐ろしいものは必要ありません:)
listView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> parent,View view, int pos, long id)
{
AisleId= parent.getSelectedItemId();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
これで、リストアイテムID parent.getSelectedItemId();を取得します。