为Android按钮设置状态

时间:2011-03-05 13:57:22

标签: android button state

我声明了一个像这样的Android按钮:

<Button
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:background="@drawable/festival_button_selector"
 android:textColor="@color/white"
 android:text="@string/STR_FEST_SELOFF"
 android:onClick="onBtnFestSelectionClick"
/>

以下是此按钮的选择器背景(festival_button_selector)的内容:

<item android:state_focused="true" 
    android:drawable="@drawable/festival_button_focus"
    />
<item android:state_pressed="true" 
    android:drawable="@drawable/festival_button_press"
    />
<item android:state_focused="false" 
    android:state_pressed="false" 
    android:drawable="@drawable/festival_button"
    />

实际上,我想将此按钮背景设置为“焦点”状态(因此按钮背景将是festival_button_focus)作为默认值。如果我们点击其他按钮,此按钮背景将返回“正常”状态(背景为festival_button)。我们能做到吗?

P / S:我不想改变festival_button_selector。如果我们有一个像button.setFocusState(true)这样的函数来使这个按钮处于焦点状态,那将是理想的。

3 个答案:

答案 0 :(得分:2)

看一下requestFocus()来设置初始焦点状态。

答案 1 :(得分:1)

听起来你需要在按钮上拨打View.requestFocus()

答案 2 :(得分:0)

<item android:state_focused="true" 
    android:drawable="@drawable/festival_button_focus"
    />
<item android:state_pressed="true" 
    android:drawable="@drawable/festival_button_press"
    />
<item
    android:drawable="@drawable/festival_button"
    />

试试这个