Pet*_*rdk 43 android togglebuttonbar
我想要一组按钮,用户可以选择其中一个作为选项.它必须是像行为一样的无线电组,但我不希望无线电圈存在.我只希望用户只能切换其中一个按钮.
我想我需要像togglegroup一样.
Android中是否存在类似的内容?
小智 86
我只是重复使用的RadioGroup,像这样:(请注意onClick属性,即点击一个按钮会触发你的活动的onToggle(View)方法.
<RadioGroup android:id="@+id/toggleGroup"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:orientation="horizontal"
>
<ToggleButton android:id="@+id/btn_Letter"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="1"
android:textSize="14sp"
android:textOn="Letter"
android:textOff="Letter"
android:onClick="onToggle"
android:checked="true"
/>
<ToggleButton android:id="@+id/btn_A4"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="1"
android:textSize="14sp"
android:textOn="A4"
android:textOff="A4"
android:onClick="onToggle"
/>
</RadioGroup>
Run Code Online (Sandbox Code Playgroud)
在您的Activity或其他地方,您可以定义一个监听器,例如
static final RadioGroup.OnCheckedChangeListener ToggleListener = new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(final RadioGroup radioGroup, final int i) {
for (int j = 0; j < radioGroup.getChildCount(); j++) {
final ToggleButton view = (ToggleButton) radioGroup.getChildAt(j);
view.setChecked(view.getId() == i);
}
}
};
Run Code Online (Sandbox Code Playgroud)
并注册,例如onCreate():
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.scan_settings);
((RadioGroup) findViewById(R.id.toggleGroup)).setOnCheckedChangeListener(ToggleListener);
}
Run Code Online (Sandbox Code Playgroud)
最后onToggle(View),你会做任何需要发生的事情,特定于你的应用程序.并使用切换视图的id 调用RadioGroup的检查方法.像这样:
public void onToggle(View view) {
((RadioGroup)view.getParent()).check(view.getId());
// app specific stuff ..
}
Run Code Online (Sandbox Code Playgroud)
dha*_*g23 13
您可以使用常规单选按钮并将图像用于RadioButton背景,而不指定文本字符串:
<RadioButton
android:id="@+id/custom_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@null"
android:background="@drawable/button_custom"
/>
Run Code Online (Sandbox Code Playgroud)
对于背景,使用任何drawable,但很可能你会想要使用选择器来为不同的状态提供不同的图像.最简单的版本只使用两个图像:
<item android:state_checked="true" android:state_pressed="true"
android:drawable="@drawable/custom_selected" />
<item android:state_checked="false" android:state_pressed="true"
android:drawable="@drawable/custom_normal" />
<item android:state_checked="true" android:state_focused="true"
android:drawable="@drawable/custom_selected" />
<item android:state_checked="false" android:state_focused="true"
android:drawable="@drawable/custom_normal" />
<item android:state_checked="false" android:drawable="@drawable/custom_normal" />
<item android:state_checked="true" android:drawable="@drawable/custom_selected" />
Run Code Online (Sandbox Code Playgroud)
有了这个,单选按钮看起来像一个常规按钮(或者更确切地说,看起来像你提供的任何可绘制的),并且表现得像一个无线电组中的单选按钮.
| 归档时间: |
|
| 查看次数: |
38662 次 |
| 最近记录: |