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

在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;
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值