Android - 设置Clicked焦点按钮

时间:2011-01-13 12:34:41

标签: android button

我的布局中有4个按钮,现在每当我点击任何按钮时,在点击事件之后,按钮应该高亮显示它最后被点击。

为了制作这样的东西,我尝试了以下内容:

代码:

btn1.setOnClickListener(new button_click_listener());
btn2.setOnClickListener(new button_click_listener());


class button_click_listener implements Button.OnClickListener
{
    @Override
    public void onClick(View v) 
    {
       if(v==btn1)
       {
            btn1.requestFocus();
       }

       if(v==btn2)
       {
            btn2.requestFocus();
       }
        .......
    }
}

XML布局:

<Button 
   android:text="Click 1" 
   android:id="@+id/btnClick1" 
   android:layout_width="70dp" 
   android:layout_height="wrap_content"
   style="@android:style/Widget.Button.Small"
   android:padding="10dp"
   android:focusableInTouchMode="true">
</Button>

如何在最后点击的按钮上显示点击的高亮显示? 请给我一个方法并给出建议。

更新

如果我设置 android:focusable="true" ,则按钮会突出显示并聚焦,但同时,我需要在按钮上单击两次以执行实际点击事件。

3 个答案:

答案 0 :(得分:3)

简单的伙伴...只需要在点击事件中设置按钮的背景颜色,每次点击任何按钮都必须设置其他按钮背景颜色为空

答案 1 :(得分:0)

此功能类似于RadioButtonGroup,可根据您的要求自定义RadioButtonGroup。

通过以下方式设置RadioGroup中的样式:

<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:state_window_focused="false"
        android:drawable="@drawable/radio_hover" />
    <item android:state_checked="false" android:state_window_focused="false"
        android:drawable="@drawable/radio_normal" />
    <item android:state_checked="true" android:state_pressed="true"
        android:drawable="@drawable/radio_active" />
    <item android:state_checked="false" android:state_pressed="true"
        android:drawable="@drawable/radio_active" />
    <item android:state_checked="true" android:state_focused="true"
        android:drawable="@drawable/radio_hover" />
    <item android:state_checked="false" android:state_focused="true"
        android:drawable="@drawable/radio_normal_off" />
    <item android:state_checked="false" android:drawable="@drawable/radio_normal" />
    <item android:state_checked="true" android:drawable="@drawable/radio_hover" />
    </selector>

将此选择器设置为单选按钮。

答案 2 :(得分:0)

问题是你需要一个新的状态。按照此处的说明添加“state_highlighted”,或者您想要的任何内容:

How to add a custom button state