zoukankan      html  css  js  c++  java
  • android项目复杂的listview

        private class AppAdapter extends BaseAdapter {
    
            @Override
            public int getCount() {
                // TODO Auto-generated method stub
                return userApp.size()+sysApp.size()+2;
            }
    
            @Override
            public Object getItem(int arg0) {
                // TODO Auto-generated method stub
                return arg0;
            }
    
            @Override
            public long getItemId(int arg0) {
                // TODO Auto-generated method stub
                return arg0;
            }
    
            @Override
            public View getView(int position, View arg1, ViewGroup arg2) {
                AppInfo app ;
                //判断当前位置是不是第一个,如果是返回出去一个textview
                if (position==0) {
                    TextView tv = new TextView(AppManagerActivity.this);
                    tv.setText("用户程序("+userApp.size()+")");
                    tv.setTextColor(Color.WHITE);
                    return tv;
                    //判断当前位置是不是用来显示下一个textview的位置,就是用户程序集合+1
                }else if(position==userApp.size()+1){
                    TextView tv = new TextView(AppManagerActivity.this);
                    tv.setText("系统程序("+sysApp.size()+")");
                    tv.setTextColor(Color.WHITE);
                    return tv;
                    //判断位置是不是用来显示用户程序的位置
                }else if(position<=userApp.size()){
                    app = userApp.get(position-1);
                    //最后就是用来显示系统程序的位置
                }else{
                    app = sysApp.get(position-userApp.size()-2);
                }
                    
                
                View v = null;
                ViewHolder viewHolder = null;
                //进行校验,缓存必须是linearlayout的子类,
                if (arg1 != null&&arg1 instanceof LinearLayout) {
                    v = arg1;
                    viewHolder = (ViewHolder) v.getTag();
    
                } else {
                    v = View.inflate(AppManagerActivity.this,
                            R.layout.item_app_show, null);
                    viewHolder = new ViewHolder();
                    viewHolder.tv_name = (TextView) v
                            .findViewById(R.id.app_item_tv_name);
                    viewHolder.tv_location = (TextView) v
                            .findViewById(R.id.app_item_tv_location);
                    viewHolder.img_icon = (ImageView) v
                            .findViewById(R.id.app_item_img_icon);
                    // 对应关系一致
                    v.setTag(viewHolder);
                }
                viewHolder.img_icon.setImageDrawable(app.getIcon());
                viewHolder.tv_name.setText(app.getName());
                if (app.isRow()) {
                    viewHolder.tv_location.setText("内部存储程序");
                } else {
                    viewHolder.tv_location.setText("外部存储程序");
                }
                return v;
            }
    
        }
    
        static class ViewHolder {
            ImageView img_icon;
            TextView tv_name;
            TextView tv_location;
        }
  • 相关阅读:
    js设计模式-工厂模式(XHR工厂)
    js设计模式-工厂模式(抽象工厂)
    javascript设计模式-工厂模式(简单工厂)
    转载【梦想天空(山边小溪)】Web 开发人员和设计师必读文章推荐【系列二十九】
    转载【H:JL】用大家的力量来总结一个目录(众人拾柴火焰高)
    javascript设计模式-单体模式
    javascript设计模式-掺元类
    javascript设计模式-继承
    开博第一天
    iOS开发 在某个视图控制器中 隐藏 状态栏
  • 原文地址:https://www.cnblogs.com/84126858jmz/p/5030744.html
Copyright © 2011-2022 走看看