0

次のようにテキストの色を設定しているテキストビューがあります。

<TextViw
android:id = "@+id/tv"
android:clickable = "true"
android:textColor = "@color/clickable_text"
android:textSize="16sp"
/>

そして、selecorは

<item android:state_pressed "true" android:color = "#FF0000"  />  //which is red
<item android:color = "#00FF66"  />  //which is Green

textviewは、期待どおりにGreenで始まります。クリックすると(押し続けると)、色が赤に変わります。これは良いことです。ただし、クリックを離すと(つまり、タッチを解除します)。その後、色が黄色に変わります!。これは、クリックするとクリック可能なビューを変更するデフォルトのカラーAndroidです。どうして!!!!。

思った通りにグリーンに戻ってはいけませんか?問題は、アクティビティ間を移動して戻ってきても、このカラースタシスがオンになることです。ありがとうございました

4

2 に答える 2

0

これがあなたの質問に対する正確な答えではないことは知っていますが、このリンクのアイデアが役立つかもしれません: Android how to make TextView text bold when pressed or focused。これがお役に立てば幸いです。

于 2012-04-27T00:16:16.287 に答える
0

通常、押された、フォーカスされた、デフォルトの状態が必要です。ちなみに、常にデフォルトの状態を最後に置きます。私の推測では、長押ししてから離すと、ボタンは押されていません (赤) が、まだフォーカスされています。したがって、フォーカスを以下のように緑に変更します

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:color = "#FF0000" /> <!-- pressed -->
    <item android:state_focused="true"
          android:color = "#00FF66" /> <!-- focused -->
    <item android:color = "#00FF66" /> <!-- default -->
</selector>
于 2012-04-26T18:48:45.030 に答える