MyArrayAdapter 比较标准的写法
package com.ali.fridge.supermarket.module; import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView; import com.ali.fridge.R;
import com.ali.fridge.util.LogUtils; import java.util.List; import static com.ali.fridge.util.LogUtils.makeLogTag; /**
* Created by xiaomin.wxm on 2016/4/7.
*/
public class MyArrayAdapter extends ArrayAdapter<String> { private static final String TAG = makeLogTag(MyArrayAdapter.class);
private Context mContext;
private List<String> mString;
private LayoutInflater mInflater;
private boolean mFirst = true;
private int mNowItemSelected;
private MyViewHolder holder; public MyArrayAdapter(Context context, int textViewResourceId, List<String> aStrings) {
super(context, textViewResourceId, aStrings);
mString = aStrings;
mContext = context;
/*if (mString == null) {
mString = new ArrayList<>();
mString.add("推荐");
}*/
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
holder = new MyViewHolder();
mInflater = LayoutInflater.from(mContext);
convertView = mInflater.inflate(R.layout.goods_item_onecategory, null);
holder.categoryName = (TextView) convertView.findViewById(R.id.goods_tv_category);
holder.ivVerticalBar = (ImageView) convertView.findViewById(R.id.goods_img_category_selector);
convertView.setTag(holder);
} else {
holder = (MyViewHolder) convertView.getTag();
}
holder.categoryName.setText(mString.get(position));
if (position == mNowItemSelected) {
holder.ivVerticalBar.setVisibility(View.VISIBLE);
} else {
holder.ivVerticalBar.setVisibility(View.GONE);
}
return convertView;
} public void setNewData(List<String> aStrings) {
LogUtils.LOGD(TAG, "setNewData begin");
clear();
mString = aStrings;
/*if (mString == null) {
mString = new ArrayList<>();
mString.add("推荐");
}*/
if (mString != null) {
for (int i = 0; i < mString.size(); i++) {
insert(mString.get(i), i);
}
}
notifyDataSetChanged();
LogUtils.LOGD(TAG, "setNewData end");
} /*
index : selectitem index <0 means not selected
*/
public void setSelected(int index) {
mNowItemSelected = index;
notifyDataSetChanged();
} private class MyViewHolder {
TextView categoryName;
ImageView ivVerticalBar;
}
}
MyArrayAdapter 比较标准的写法的更多相关文章
- MSSQL 标准PROC 写法
MSSQL 标准PROC 写法 ALTER PROC [dbo].[usp_ADM_InsertFlowSortInfo]@FlowSortName NVARCHAR(50),AS/*PAGE: 分类 ...
- try catch finally 关闭流标准的写法
平常开发中,都知道要在finlly里关闭流,但是有时finlly里代码不当,会引起另外的异常. 以下是看struts2源代码看到的,随手记录下. 有两点注意: (1)判断流是否为空. (2)filly ...
- Java 标准DBUtil 写法
package xueruan.com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql ...
- jquery Ajax标准规范写法
$.ajax({ url:"http://www.xxx",//请求的url地址 dataType:"json",//返回的格式为json async:true ...
- ViewHolder的标准写法
最标准的写法,就是为每一个AdapterView的子View新建一个对应的ViewHolder,同时声明为prtivate final static.ViewHolder类中定义各种成员变量. pub ...
- 从IntToHex()说起,栈/堆地址标准写法 good
学习中的一些牢骚.栈/堆地址标准写法. 2017-02-12 • 杂谈 • 暂无评论 • 老衲 •浏览 226 次 我一直都在寻找各种业务功能的最简单写法,用减法的模式来开发软件.下面是我的写法,如果 ...
- (转)Css样式兼容IE6,IE7,FIREFOX的写法
根据FF和IE对一些符号识别的差异,我们可以单独对FF以及IE定义样式,例子: 区别IE6与FF: background:orange;*background:blue; 区别I ...
- node.js 标准/错误输出 和 process.exit
node.js中,各种模块有一种标准的写法: this._process.exec(command, options, function (err, stdout, stderr) { callbac ...
- Css样式兼容IE6,IE7,FIREFOX的写法
根据FF和IE对一些符号识别的差异,我们可以单独对FF以及IE定义样式,例子: 区别IE6与FF: background:orange;*background:blue; 区别I ...
随机推荐
- Spring Data JPA 查询方法支持的关键字
Table 2.3. Supported keywords inside method names Keyword Sample JPQL snippet And findByLastnameAndF ...
- iOS UITextField的returnkey点击事件
关于隐藏软键盘,网上的办法良莠不齐,大多是通过实现UITextFieldDelegate来隐藏软键盘,该方法代码较多,且在文本框很多的时不好处理.我经过搜索与摸索,找到了最佳的处理办法.(引用的) ...
- HDU4807 Lunch Time(费用流变种)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=4807 Description The campus of Nanjing Universit ...
- ccc tiledmap
//移动方向枚举类 var MoveDirection = cc.Enum({ NONE: 0, UP: 1, DOWN: 2, LEFT: 3, RIGHT: 4 }); var minTilesC ...
- HDU 2586 (LCA模板题)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2586 题目大意:在一个无向树上,求一条链权和. 解题思路: 0 | 1 / \ 2 3 ...
- webpack练手项目之easySlide(二):代码分割(转)
在上一篇 webpack练手项目之easySlide(一):初探webpack 中我们一起为大家介绍了webpack的基本用法,使用webpack对前端代码进行模块化打包. 但是乍一看webpack ...
- tornado 学习笔记1 引言
从事软件开发这行业也快5年啦,其实从事的工作也不完全是软件开发,软件开发只是我工作中的一部分.其中包括课题研究.信息化方案设计.软件开发.信息系统监理.项目管理等工作,比较杂乱.开发的软件比较多,但是 ...
- /var/log目录下的20个Linux日志文件功能详解
如果愿意在Linux环境方面花费些时间,首先就应该知道日志文件的所在位置以及它们包含的内容.在系统运行正常的情况下学习了解这些不同的日志文件有助于你在遇到紧急情况时从容找出问题并加以解决. 以下介绍的 ...
- linux修改系统编码
Windows的默认编码为GBK,Linux的默认编码为UTF-8.在Windows下编辑的中文,在Linux下显示为乱码.一种方法是在windows进行转码,比如使用ue工具在文件-->转换 ...
- NHibernate one-to-one
NHibernate里面one-to-one有两种方式:主键关联和唯一外健关联 主键关联: 两个表拥有相同的主键字段,值相同的关联在一起.典型的应用是一个对象的属性太多,将常用的属性跟不常用的附加属性 ...