2

SimpleCursorAdapterからのデータを表示するListViewがあります。id値があり、getItemId(position)の反対のリスト内の位置が必要です。そのような機能はありますか?

私はそれを実装する方法を知っています(コードを表示する必要はありません)が、それを見つけることができず、それは明白な方法のようです。

4

2 に答える 2

1

コメントから生まれた

組み込みアダプタには、このような方法はありません。ListViewが行IDで並べ替えられている場合は、バイナリ検索を使用できます(高速です!)。そうでない場合は、徹底的な検索でスタックしている可能性があります(低速...)。

于 2012-09-02T23:10:51.183 に答える
0

簡単な解決策は、バインドビューで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);
于 2016-03-24T06:35:55.780 に答える