效果图:
图1:
图2:
方法一:
public class MainActivity extends AppCompatActivity {private RadioGroup rgSex;//单选性别组private Button button;//获取值private TextView tvShow; //显示String info = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();// 绑定idrgSex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {switch (checkedId){case R.id.rb_man:info = rbMan.getText().toString().trim();break;case R.id.rb_woman:info = rbWoman.getText().toString().trim();break;}}});button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {tvShow.setText(info);}});}private void initView() {rgSex = findViewById(R.id.rg_sex);button = findViewById(R.id.btn_get);tvShow = findViewById(R.id.tv_show);}
方法二:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {private RadioButton rbMan,rbWoman;// 男,女private Button button;//获取值private TextView tvShow; //显示String info = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();// 绑定idrbWoman.setOnClickListener(this);rbMan.setOnClickListener(this);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {tvShow.setText(info);}});}private void initView() {rbMan = findViewById(R.id.rb_man);rbWoman = findViewById(R.id.rb_woman);button = findViewById(R.id.btn_get);tvShow = findViewById(R.id.tv_show);}@Overridepublic void onClick(View v) {switch (v.getId()){case R.id.rb_man:info = rbMan.getText().toString().trim();break;case R.id.rb_woman:info = rbWoman.getText().toString().trim();break;}}}
总结:
1.使用方法一,代码会比较简洁,其原理就是以一个单选按钮组为中心,再去实现对应逻辑2.使用方法二,代码会比较多,但逻辑和普通按钮时一样的,都是先设定监听,在去onClick方法里判断,在做出对应逻辑,其代码有多余的冗余度。综上所述,推荐使用方法一!