0

その特定の行のカーソル内のデータの値に基づいて 2 つの異なるビューを返すカスタム CursorAdapter によって設定される ListView を使用しています。

1 つのビュー タイプには TextView が含まれており、TextView1 と呼びます。
2 番目のビューには、TextView1 と TextView2 が含まれています。

問題は、2 番目のビューを ListView の 2 つの行として扱いたいということです。したがって、Text1 は行になり、Text2 は別の行になります。

明らかに、レイアウトを使用すると、別の行のように見せることができますが、実際には別の行ではありません。それらを個別に選択することはできないため、ListView の OnListItemClick イベントにフックすると、TextView1 と TextView2 をクリックするための単一のイベントが発生します。それらは区別されません。ここに2つの行があり、1つではなく、それを偽造する方法があることをListViewに伝える方法はありますか?

4

1 に答える 1

0

ここに1つではなく2つの行があることをListViewに伝える方法はありますか、それとも偽造する方法はありますか?

これには2つの方法でアプローチできます。まず、を正しい行数にAdapter分割する独自のカスタムを作成してから、行ごとに1つを。で使用することができます。のデータのサイズによっては、これは簡単な場合もあれば、回避する場合もあります。CursorTextViewOnItemClickListenerCursor

2番目のアプローチは、現在のカスタムを使用して、 2つのタイプの行(およびメソッドをCursorAdapter実装)を実装することです。1つは単純で、1つは2つの行です。秘訣は、 onを使用できないことです。代わりに、行からonを設定します。行全体の幅と高さを占めるようにすると、選択されている行の効果になります。forの場合は、またはforの現在の位置を渡して、必要な処理を実行できます。getViewTypeCount()getItemViewType()TextViewTextViewsOnItemClickListenerListViewOnCLickListenersTextViewsTextViewsOnClickListenerTextViewsCursorid

于 2012-07-24T09:07:53.520 に答える