SimpleCursorAdapterからのデータを表示するListViewがあります。id値があり、getItemId(position)の反対のリスト内の位置が必要です。そのような機能はありますか?
私はそれを実装する方法を知っています(コードを表示する必要はありません)が、それを見つけることができず、それは明白な方法のようです。
SimpleCursorAdapterからのデータを表示するListViewがあります。id値があり、getItemId(position)の反対のリスト内の位置が必要です。そのような機能はありますか?
私はそれを実装する方法を知っています(コードを表示する必要はありません)が、それを見つけることができず、それは明白な方法のようです。
コメントから生まれた
組み込みアダプタには、このような方法はありません。ListViewが行IDで並べ替えられている場合は、バイナリ検索を使用できます(高速です!)。そうでない場合は、徹底的な検索でスタックしている可能性があります(低速...)。
簡単な解決策は、バインドビューでIDを子アイテムに設定することです
@Override
public void bindView(View view, final Context context, Cursor cursor {
.....
convertView.setId(id);
}
後でアクティビティから、IDでこのビューを見つけて、位置を取得できます
View yourChildViewWithSpecifiedId = yourListView.findViewById(id);
int position = yourListView.getPositionForView(yourChildViewWithSpecifiedId);