2012-04-20 11 views
2

問題をクリックしたとき:更新ListView項目の描画可能な状態の子供が

私は、比較的複雑なレイアウトでListViewアイテムを持っています。リスト項目ビューの子の1つは、リンク付きTextViewです。 TextViewは、(Linkifyを使用して)見つかったリンクのクリックを処理でき、OnClickListenerはリンクではないテキストの部分を処理します。リスナーはちょうどListViewのビューの位置を取得し、クリックを実行します。クリックは、リスト項目の描画可能な状態を更新するためにListViewをトリガしません除い

@Override 
public void onClick(View v) { 
    int position = mListView.getPositionForView(v); 
    mListView.performItemClick(v, position, mAdapter.getItemId(position)); 
} 

すべては、正常に動作します。クリック可能でないアイテム内の他のTextViewをクリックすると、それが引き起こされます。

ありがとうございます!

+0

mListView.invalidateViews()を実行しようとしましたか? – HelloWorld

答えて

2

これは機能しています。

は、リストアイテムビューclickableを設定し、state-list描画可能としてその背景を設定し、またtrueaddStatesFromChildrenを設定します。これにより、子がクリックされたとき(子がクリック可能であると仮定)、リストビュー項目の状態が変更されます。

しかし、これは、それ自体がフォーカスを受けていないListViewの原因となりますので、あなたは、リスト項目自体にView.OnClickListenerを追加する代わりにListViewOnItemClickedListenerを追加することによって、クリックを処理する必要があります。

関連する問題