adapter 适配器的学习

baseAdapter:四大接口

1.getCount()  ---item数量

2.getItem(int position)---返回position

3. getItemId(int position)---返回第几号数据

4.getView(int position, View convertView, ViewGroup parent);  

 position就是位置,从0开始

convertView是Spinner,ListView中每一项要显示的view

parent就是父窗体了,也就是Spinner,ListView,GridView了

通常return 的view也就是convertView

在4中,通常为了效率,先判断contentView之前是否已经创建,实例:

  1.  @Override  
  2.     public View getView(int position, View convertView, ViewGroup parent) {  
  3.         ViewHolder viewHolder = null;  
  4.         if (convertView == null) {  
  5.             viewHolder = new ViewHolder();  
  6.             convertView = mInflater.inflate(R.layout.list_item, null);  
  7.             viewHolder.id = (TextView) convertView.findViewById(R.id.tv_id);             
  8.             convertView.setTag(viewHolder);  
  9.         } else {  
  10.             viewHolder = (ViewHolder) convertView.getTag();  
  11.         }  
  12.         viewHolder.id.setText(list.get(position).getId()); 
  13.         return convertView;  
  14.     }  

notifyDataSetChanged();当数据有变化时可以调用,刷新界面。


------------------------------------------------

baseAdapter---》ArrayAdapter:

构造函数:

 /**
129         * Constructor
130         *
131         * @param context The current context.
132         * @param resource The resource ID for a layout file containing a layout to use when
133         *                 instantiating views.
134         * @param textViewResourceId The id of the TextView within the layout resource to be populated
135         * @param objects The objects to represent in the ListView.
136         */
137        public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) {
138            init(context, resource, textViewResourceId, Arrays.asList(objects));
139        }
参数:1  2  3  4
1 context
2 resource是指布局文件item。。。当item布局文件只有一个textView时,第三个参数textViewResourceId可无视内部认为是0
3 textViewResourceId指  上面resource文件中的textView的id
4 objects   数据数组的话自动转为list   。没有的话认为是没有数据 就是new ArrayList<T>()
ArrayAdapter(Context context, int textViewResourceId)----》init(context, textViewResourceId, 0, new ArrayList<T>());
ArrayAdapter(Context context, int resource, int textViewResourceId)---》init(context, resource, textViewResourceId, new ArrayList<T>());
ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)
ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)
ArrayAdapter(Context context, int textViewResourceId, List<T> objects) 
ArrayAdapter(Context context, int textViewResourceId, T[] objects)--》init(context, textViewResourceId, 0, Arrays.asList(objects)); 以上是相关构造函数
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);下拉视图用 simple_spinner_dropdown_item 填充
-----------
SimpleAdapter:
构造函数:
/**
065         * Constructor
066         * 
067         * @param context      The context where the View associated with this SimpleAdapter is running
068         * @param data A List of Maps.     Each entry in the List corresponds to one row in the list. The
069         *        Maps contain the data for each row, and should include all the entries specified in
070         *        "from"
071         * @param resource     Resource identifier of a view layout that defines the views for this list
072         *        item. The layout file should include at least those named views defined in "to"
073         * @param from A list of column names that will be added to the Map associated with each
074         *        item.
075         * @param to The views that should display column in the "from" parameter. These should all be
076         *        TextViews. The first N views in this list are given the values of the first N columns
077         *        in the from parameter.
078         */
079        public SimpleAdapter(Context context, List<? extends Map<String, ?>> data,  int resource, String[] from, int[] to)
参数:1.2.3.4
1.context
2.data   链表,节点是Map 用法:
	Map<String,Object> item;
item=new HashMap<String,Object>();
item.put("姓名", "张三小朋友");
item.put("性别", "男");
	data= new ArrayList<Map<String,Object>>();	
data.add(item);
3.resource  Item布局文件
4.from  new String[]{"key1","key2"}   data中的数据key值
5.to new int[]{R.id.ve_id_1,R.id.ve_id2}   Item布局中对应的空间id
-----------------------------------疑问-----------------------

刷新规范用notifyDataSetChanged(),但该 方法有时候会因为自定义的adapter里的list引用而失效,委屈为什么???

重新new adapter l再 setadapter()方法不会失效;

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值