我的布局中有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"
,则按钮会突出显示并聚焦,但同时,我需要在按钮上单击两次以执行实际点击事件。
答案 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”,或者您想要的任何内容: