Code Fragment-简单的数据类直接使用public字段来访问设值。

来源:互联网 发布:linux c程序杀死进程 编辑:程序博客网 时间:2024/06/05 17:22

在UI调用频繁的地方,或者循环里面,经常有一些数据类的使用,可以直接使用它的public字段访问,代替方法。

static ArrayList<ItemInfo> getItemsInLocalCoordinates(Context context) {    ArrayList<ItemInfo> items = new ArrayList<ItemInfo>();    final ContentResolver cr = context.getContentResolver();    Cursor c = cr.query(LauncherSettings.Favorites.CONTENT_URI, new String[] {            LauncherSettings.Favorites.ITEM_TYPE, LauncherSettings.Favorites.CONTAINER,            LauncherSettings.Favorites.SCREEN, LauncherSettings.Favorites.CELLX, LauncherSettings.Favorites.CELLY,            LauncherSettings.Favorites.SPANX, LauncherSettings.Favorites.SPANY }, null, null, null);    final int itemTypeIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.ITEM_TYPE);    final int containerIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.CONTAINER);    final int screenIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.SCREEN);    final int cellXIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.CELLX);    final int cellYIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.CELLY);    final int spanXIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.SPANX);    final int spanYIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.SPANY);    try {        while (c.moveToNext()) {            ItemInfo item = new ItemInfo();            item.cellX = c.getInt(cellXIndex);//直接访问设置它的字段。            item.cellY = c.getInt(cellYIndex);            item.spanX = c.getInt(spanXIndex);            item.spanY = c.getInt(spanYIndex);            item.container = c.getInt(containerIndex);            item.itemType = c.getInt(itemTypeIndex);            item.screen = c.getInt(screenIndex);            items.add(item);        }    } catch (Exception e) {        items.clear();    } finally {        c.close();    }    return items;}

还有在UI被频繁调用的时候:

public View getView(int position, View convertView, ViewGroup parent) {    ViewHolder holder;    if (convertView == null) {        convertView = mInflater.inflate(R.layout.list_item_icon_text, null);        holder = new ViewHolder();        holder.text = (TextView) convertView.findViewById(R.id.text);        holder.icon = (ImageView) convertView.findViewById(R.id.icon);            convertView.setTag(holder);        } else {            holder = (ViewHolder) convertView.getTag();        }         // 直接使用holder的字段属性        holder.text.setText(DATA[position]);        holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);        return convertView;    }    static class ViewHolder {        TextView text;        ImageView icon;    }


原创粉丝点击