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

preferencemanager_android的context_preferencemanager类(9)

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

通过上面的分析可以看见其实对于Header的adapter核心就是setListAdapter(new HeaderAdapter(this, mHeaders));这句代码。那我们就来看看这个内部类HeaderAdapter,源码如下:

//可以发现PreferenceActivity的内部类HeaderAdapter是继承自ArrayAdapter的,
//这个Adapter就是用来给推荐的Header list的listview提供数据的。
private static class HeaderAdapter extends ArrayAdapter<Header> {
    //Holder里只有最典型经典的三个组件
    private static class HeaderViewHolder {
        ImageView icon;
        TextView title;
        TextView summary;
    }

    private LayoutInflater mInflater;
    //构造方法,不解释
    public HeaderAdapter(Context context, List<Header> objects) {
        super(context, 0, objects);
        mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    //最最核心方法!!!!!!Header list被显示到PreferenceActivity的listview关键点
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        HeaderViewHolder holder;
        View view;
        //再常见不过的Adapter数据加载ViewHolder写法了
        if (convertView == null) {
            //加载header的item布局,都是用的preference_header_item文件,如下会介绍
            view = mInflater.inflate(com.android.internal.R.layout.preference_header_item,
                    parent, false);
            holder = new HeaderViewHolder();
            holder.icon = (ImageView) view.findViewById(com.android.internal.R.id.icon);
            holder.title = (TextView) view.findViewById(com.android.internal.R.id.title);
            holder.summary = (TextView) view.findViewById(com.android.internal.R.id.summary);
            view.setTag(holder);
        } else {
            view = convertView;
            holder = (HeaderViewHolder) view.getTag();
        }

        //一堆显示,通过getItem(position)拿到构造里传入的List<Header>类型objects的item
        // All view fields must be updated every time, because the view may be recycled
        Header header = getItem(position);
        holder.icon.setImageResource(header.iconRes);
        holder.title.setText(header.getTitle(getContext().getResources()));
        CharSequence summary = header.getSummary(getContext().getResources());
        if (!TextUtils.isEmpty(summary)) {
            holder.summary.setVisibility(View.VISIBLE);
            holder.summary.setText(summary);
        } else {
            holder.summary.setVisibility(View.GONE);
        }

        return view;
    }
}


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

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

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