4

私の質問は次のとおりです: ユーザーが TextView から指を離した後、ListView の TextView にドローアブル リソースを適用して、背景色を維持することは可能ですか?

検討:

  1. ユーザーが ListView 内の項目を選択する
  2. リスト項目のハイライト
  3. ユーザーがアイテムから指を離す
  4. アイテムが強調表示されなくなりました

私の質問は、ステップ 4 でオブジェクトを強調表示したままにすることは可能ですか? 現在、リスト アイテムに状態リスト ドローアブルを使用しています。私はもう試した

android:state_focused="true"

android:state_selected="true"

android:state_check="true"

前もって感謝します :)

編集

解決しました。私はこれをJavaコードで達成しました。興味のある人のために、私は次のことをしました:

整数変数「previous」を宣言して、最初の項目の 0 から始まる前のインデックスを格納し、setBackground() によって強制的に強調表示しました。

次に、リストの onItemClickListener で、前の項目の強調表示をクリアし、現在の項目を強調表示して、'previous' を現在選択されている項目のインデックスに設定します。

xDの前にどうしてこれを考えなかったのかわからない 私は通常、問題解決が得意です。

ある時点で私たち全員に起こると思います:P

4

1 に答える 1

1

あなたのアプローチは機能しますが、避けたいのは余分なコードです。これを達成するための手順は次のとおりです。

リスト ビューの選択モードを singleChoiceMode にします。

このセレクターを作る

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/color_light_blue_for_selected_item" android:state_checked="true"/>

</セレクター>

これをリスト アイテムの背景として設定します。

そして、それはうまくいくはずです。

于 2012-11-21T08:57:33.153 に答える