`

Android之RaidoButton和Checkbox的使用

阅读更多

在布局文件中,RaidoButton需要放在RadioGroup中。代表一组中只能选中一个。

layout文件:

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    
    <TextView 
    	android:layout_width="fill_parent"
    	android:layout_height="wrap_content"
    	android:text="@string/radio_tv"
    />
    <RadioGroup 
    	android:id="@+id/radioGroup"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:orientation="horizontal"
    >
    	<RadioButton 
    		android:id="@+id/mailRadio"
    		android:layout_width="wrap_content"
    		android:layout_height="wrap_content"
    		android:text="@string/mailRadio"
    	/>
    	<RadioButton 
    		android:id="@+id/femailRadio"
    		android:layout_width="wrap_content"
    		android:layout_height="wrap_content"
    		android:text="@string/femailRadio"
    	/>
    	
    </RadioGroup>
    
    <TextView 
    	android:layout_width="fill_parent"
    	android:layout_height="wrap_content"
    	android:text="@string/checkbox_tv"
    />
    <CheckBox 
    	android:id="@+id/read_checkbox"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="@string/read_checkbox"
    />
    <CheckBox 
    	android:id="@+id/watchtv_checkbox"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="@string/watchtv_checkbox"
    />
    <CheckBox 
    	android:id="@+id/playgame_checkbox"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="@string/playgame_checkbox"
    />
</LinearLayout>

 

strings.xml:

 

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="mailRadio">男</string>
    <string name="femailRadio">女</string>
    <string name="radio_tv">请选择性别:</string>
    <string name="checkbox_tv">请选择爱好:</string>
    <string name="watchtv_checkbox">看电视</string>
    <string name="read_checkbox">看书</string>
    <string name="playgame_checkbox">打游戏</string>
    <string name="radio_checkbox_text">单选和多选按钮的使用</string>
</resources>


java:

 

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Toast;
	
public class RadioAndCheckboxActivity extends Activity {
	private RadioGroup radioGroup = null;
	private RadioButton maleRadio = null;
	private RadioButton femailRadio = null;
	private CheckBox readCheckbox = null;
	private CheckBox watchTvCheckBox = null;
	private CheckBox playgameCheckBox = null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		this.setContentView(R.layout.radio_checkbox);
		
		radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
		maleRadio = (RadioButton) findViewById(R.id.mailRadio);
		femailRadio = (RadioButton) findViewById(R.id.femailRadio);
		readCheckbox = (CheckBox) findViewById(R.id.read_checkbox);
		watchTvCheckBox = (CheckBox) findViewById(R.id.watchtv_checkbox);
		playgameCheckBox = (CheckBox) findViewById(R.id.playgame_checkbox);
		
		// 在RadioGroup上添加监听器
		radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				System.out.println(checkedId);
				if (maleRadio.getId() == checkedId) {
					Toast.makeText(RadioAndCheckboxActivity.this, maleRadio.getText(), Toast.LENGTH_SHORT).show();
				}
				else if (femailRadio.getId() == checkedId) {
					Toast.makeText(RadioAndCheckboxActivity.this, femailRadio.getText(), Toast.LENGTH_SHORT).show();
				}
			}
		});
		
		readCheckbox.setOnCheckedChangeListener(new MyCheckboxCheckedChangeListener());
		watchTvCheckBox.setOnCheckedChangeListener(new MyCheckboxCheckedChangeListener());
		playgameCheckBox.setOnCheckedChangeListener(new MyCheckboxCheckedChangeListener());
		System.out.println(readCheckbox.getText());
	}
	
	class MyCheckboxCheckedChangeListener implements CompoundButton.OnCheckedChangeListener {
		@Override
		public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
			String msg = buttonView.getText().toString();
			Log.i("RadioAndCheckboxActivity", msg + "-->checked:" + isChecked);
			if (isChecked) {
				Toast.makeText(RadioAndCheckboxActivity.this, msg + " Checked!", Toast.LENGTH_SHORT).show();
			}
			else {
				Toast.makeText(RadioAndCheckboxActivity.this, msg + " Not checked!", Toast.LENGTH_SHORT).show();
			}
		}
	}
	
}


注意2点:

1.在RadioGroup上添加OnCheckedChangeListener,不是在RadioButton。

2.CheckBox添加的Listener是CompoundButton.OnCheckedChangeListener,Checkbox继承CompoundButton,使用的CompoundButton的OnCheckedChangeListener。

 

效果:

分享到:
评论

相关推荐

    checkbox,RaidoButton,改变默认的图标

    对于JavaScript和React.js,你可以利用CSS来改变`input[type="checkbox"]`和`input[type="radio"]`的伪元素,例如`::before`和`::after`,或者使用第三方库提供的API来定制样式。 总的来说,改变`Checkbox`和`...

    利用RaidoButton和ViewPager实现TabHost和Fragment 的功能

    在Android应用开发中,TabHost和Fragment是常用于构建多标签页界面的组件,而随着技术的演进,开发者开始采用更加现代的方式来实现相同的功能,例如RadioGroup中的RadioButton结合ViewPager。这种方式不仅提供了更好...

    最简单RaidoButton&RadioGroup;实例

    在Android开发中,`RadioButton`和`RadioGroup`是两个非常重要的组件,它们通常用于创建单选按钮选项,让用户在一组...通过理解这两个组件的工作原理和使用方法,你可以更好地设计和实现各种功能丰富的Android应用。

    Android ListView中动态添加RaidoButton的实例详解

    Android ListView中动态添加RaidoButton的实例详解 这里讲解的内容是:从数据库中取得数据,将这些数据的value值赋值给Radiobutton的text属性,将这些数据的key值赋值给radiobutton的key值。同时实现点击一整行,...

    漂亮的 checkbutton raidobutton

    下面我们将深入探讨`Checkbutton`和`Radiobutton`的使用方法以及如何为它们添加自定义皮肤。 `Checkbutton` 是一种复选框,允许用户选择一个或多个选项。在Tkinter中,我们可以通过`ttk`模块(Themed Tkinter)创建...

    fragment+Viewpager 嵌套

    1:fragment+raidoButton 实现点击radioButton 切换视图 2:fragment+viewpager 通过对滑动事件的监听、切换视图 3:在2的基础上,进行viewpager嵌套。 并获取不同的监听事件...(PS:更大层面上适合初学者学习和了解)

Global site tag (gtag.js) - Google Analytics