我有5个简单的按钮,我希望它们的行为类似于单选按钮,但没有勾选框(或者他们称之为的任何东西)。它们在行中对齐,我只希望一次选择其中一个,当选择一个按钮时,它必须保持其选定的样式。我的布局代码如下所示:
<Button
android:id="@+id/button1"
android:layout_width="150dp"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_margin="0dp"
android:text="@string/mybutton1" />
<Button
android:id="@+id/button2"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/button1"
android:text="@string/mybutton2" />
// and so on
我的代码:
mybtn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mybtn1.setPressed(true);
}
});
所以,我不知道我是否可以在布局或代码中执行此操作。当我点击按钮时,有没有办法让按钮保持在选定状态(和选定的样式)? 此外,是否可以将事件分配给所有这些按钮?
谢谢!
答案 0 :(得分:6)
只需在onClickListener中设置所选状态:
myButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v)
{
//handle click
v.setSelected(true);
}
});
点击状态只是选定状态,您可以打开和关闭效果。
答案 1 :(得分:0)
如果按钮的所需行为是将它们用作checbox,则可以使用ToggleButton。
在你的情况下,实际上是一个切换按钮列表,当你点击一个切换按钮时,你将不得不使用以下方式取消选择所有其他按钮:
for (ToggleButton btn : buttons)
if (btn != crtButton)
btn.setChecked(false);