b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

preferencemanager_android的context_preferencemanager类(7)

电脑杂谈  发布时间:2017-05-28 03:03:06  来源:网络整理

终于快要大白了,PreferenceFragment的listview设置的adapter原来是PreferenceGroupAdapter。哈哈,我们继续来看看这个类,如下:

//hide类,专门用来Preference的list显示的adapter
public class PreferenceGroupAdapter extends BaseAdapter
        implements OnPreferenceChangeInternalListener {
    //省略相关属性定义
    ......
    //构造方法,传入的是PreferenceScreen根布局
    public PreferenceGroupAdapter(PreferenceGroup preferenceGroup) {
        ......
        //sync设置相关list列表数据后通知listview刷新
        syncMyPreferences();
    }

    private void syncMyPreferences() {
        ......
        //通知listview刷新当前准备的Preference列表
        notifyDataSetChanged();
        ......
    }
    //省略一堆方法
    ......
    //notifyDataSetChanged后和普通adapter一样item绘制会回调getView方法
    public View getView(int position, View convertView, ViewGroup parent) {
        //拿到当前item的Preference组件
        final Preference preference = this.getItem(position);
        ......
        //调运Preference的getView方法得到当前item真正的view显示,这是核心!!!!!!!!!!!!
        //关于Preference的getView方法下面分析Preference源码会说到的,或者你可以直接跳到Preference源码分析部分查看。
        View result = preference.getView(convertView, parent);
        ......
        return result;
    }
    ......
}

到此你会发现,其实无非就是ListView和Adapter的关系,而Adapter的getView所得到的View由Preference提供而已,而Adapter由PreferenceScreen管理而已。

说到PreferenceActivity现在不推荐的addPreferencesFromResource方法时其实是没啥解释的,这种模式现在被官方推荐通过PreferenceFragment的addPreferencesFromResource来实现,所以也就是说关于PreferenceActivity的addPreferencesFromResource方法(也就是在PreferenceActivity中直接添加Preference组件)其显示原理和上面分析的PreferenceFragment是一样的,所以这里就不再过多解释了。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-49639-7.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 邹绍先
      邹绍先

      但是外国舰艇的数据都是真是的

    • 水树奈奈
      水树奈奈

      从目前美舰已闯进12海里的事实看

    • 周园园
      周园园

      获得更好的发展

    热点图片
    拼命载入中...