zoukankan      html  css  js  c++  java
  • Android学习对RadioGroup和TabHost监听的理解

    我也是在debug中发现一些小细节,再次总结一下。

    1、对于RadioGroup,是RadioButton的一个组设置,可以实现单选效果。 对于RadioGroup的设置监听setOnCheckedChangeListener(OnCheckedChangeListener listener); OnCheckedChangeListener 是一个接口,接口函数为:

    public void onCheckedChanged(RadioGroup group, int checkedId); 设置监听后,实现接口,就可以得到 RadioGroup 的对象和RadioGroup 内的RadioButton的checkedId,从而实现操作。

    点击RadioButton能响应onCheckedChanged,是因为同组内旧checkedId和新的checkedId不同,有时候我们在XML的布局文件中已经把该RadioButton的android:checked = "true"设置了,如果你在初始化定义此RadioButton的setChecked为true,可能就无法响应onCheckedChanged了。因为我在做程序的时候,为了统一方便,把很多功能都设置在onCheckedChanged中,这样当set变化后,就能自动执行了,所以当我们已经不小心在布局文件中设置了,可以在初始化中再次实现setChecked为true的一些动作了。

            我也是在debug的时候发现一些问题,所以要理解接口,只有在CheckedChanged的时候,才会有响应动作。

    2、对于TabHost也是同理的,他是管理不同个布局显示的tab控制器。但是会更复杂一些,以为你需要添加布局到TabHost中,void addTab(TabSpec tabSpec),但是要注意的是,在实现addTab时候,已经默认显示第一个tab,如果你要设置显示tab,可以用TabHost对象setCurrentTab(mCurrentTab),对于TabHost的监听

    mTabHost.setOnTabChangedListener(new OnTabChangeListener() {

                @Override
                public void onTabChanged(String tabId) {
                    // TODO Auto-generated method stub
                      });

    onTabChanged也是当tab变化是才能够响应的,在onTabChanged完成一些动作是要记住TabHost默认现实第一个tab页,所以当你初始化setCurrentTab(0),其实没有完成onTabChanged中对应id的操作。

             我估计写的不够清楚,但是在你调试程序的时候,会深刻体会android的这些控件。

  • 相关阅读:
    android调用google地图
    AndroidManifest.xml中android:configChanges的简介
    android消息推送机制
    用j4lChartAndroid实现3D图饼
    读《重构改善既有代码的设计》笔记一
    怎样删除data下的多余文件
    Mac OSX 10.8 下 配置 mysql+python+thrift开发环境
    新的征程
    练习1 四则运算的程序
    作业二四则运算
  • 原文地址:https://www.cnblogs.com/candycaicai/p/2047803.html
Copyright © 2011-2022 走看看