0

ListView アイテムのカスタム セレクターがあります。これは次のようになります。

<item android:drawable="@color/transparent" android:state_activated="false"/>
<item android:drawable="@color/blue" android:state_activated="true"/>

アイテムをタップすると背景が青色に変わります。コードを介してこの「タップ」を実行したいのですが、ListView での子の位置が既にわかっていても、どのメソッドを呼び出すべきかわかりません。


実際、私が本当に望んでいるのは、onListItemClick() を起動せずに行の背景を (タップしたときと同様に) 変更することです。

4

3 に答える 3

2

この「タッピング」をコードで行いたい

必要な行をフェッチし (画面上にある必要があります)、呼び出すperformClick()か、使用することができますsetActivated(true)(この方法は試したことはありません)。

于 2013-03-08T20:35:48.917 に答える
0

セレクターを変更してオンに切り替えてから、 ;android:state_selected="true"を使用します。listView.setSelection(index)

于 2013-03-09T03:23:09.937 に答える
0

タッチイベントをエミュレートしようとした場合はどうなりますか?おそらく最もクリーンな答えではありませんが...

目的の行のビューを取得してから、

rowView.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 0, 0, 0));
于 2013-03-08T21:27:32.543 に答える