Android 开发基础(四):选项组件监听器

(个人经验,仅供参考,错误之处,敬请谅解)

选项组件监听器的使用

  1. Spinner

当下拉列表被选中值

sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
               ......
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
				......
            }
        });
  1. RadioGroup

当单选按钮组选项切换

rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId){
                    case R.id.rb1:
                        tv.setTextColor(getResources().getColor(R.color.white));
                        break;
                    case R.id.rb2:
                        tv.setTextColor(getResources().getColor(R.color.red));
                        break;
                    case R.id.rb3:
                        tv.setTextColor(getResources().getColor(R.color.blue));
                        break;
                }
            }
        });
  1. CheckBox

当某个复选框勾选变化

ck1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked){
               		 ......
                }
                else{
                  	 ......
                }
            }
        });
  1. toggleButton

当开关按钮状态改变

toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked){
                   ......
                }
                else{
                   ......
                }
            }
        });

多级Spinner的联动

上一级的值发生改变,下一级对应内容发生改变

string.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="province">
        <item>江苏省</item>
        <item>湖南省</item>
        <item>湖北省</item>
        <item>江西省</item>
    </string-array>
    <string-array name="jiangsu">
        <item>南京市</item>
    </string-array>
    <string-array name="hunan">
        <item>长沙市</item>
    </string-array>
    <string-array name="hubei">
        <item>武汉市</item>
    </string-array>
    <string-array name="jiangxi">
        <item>南昌市</item>
    </string-array>
</resources>

private Spinner sp1,sp2;
private int[]cities={R.array.jiangsusheng,R.array.hunansheng,R.array.hubeisheng,R.array.jiangxisheng};
private void setListeners() {
        sp1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                ArrayAdapter<CharSequence>adapter=ArrayAdapter.createFromResource(
                        LianDongAty.this,cities[position],android.R.layout.simple_dropdown_item_1line
                );
                sp2.setAdapter(adapter);
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值