Android基础_需要使用adapter的控件,以及对BaseAdapter及其中的ViewHolder进行重构(三)
来源:互联网 发布:网络教育第二学位 编辑:程序博客网 时间:2024/05/21 09:13
Tag属性的使用
Button btn=(Button)findViewById(R.id.btn); /*设置Tag,设置一个tag对应的对象,相当与给Button绑定一个对象 * btn.setTag(Obj) * 结论:只要是控件,都可以缓存一个对象 * */ btn.setTag("Hello");
Onclick
<Button android:id="@+id/btn" android:onClick="hello" //可通过该方法直接创建点击事件 android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> /* * onClick对应的属性值就是方法名 * 必须是public void hello(View v){} * 不推荐使用,不太符合java面向对象的编程思想 */ public void hello(View v){ Log.v("me",(String)v.getTag()); }
GridView
//需要设置numColumns属性//其余使用方法同LV//已经过时了,现在一般推荐使用recyclerview代替lv,gv <GridView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent" android:numColumns="4" />
Spinner下拉框
<!-- spinnermdoe修改下拉模式:dialog dropdown --> <Spinner android:id="@+id/lv" android:layout_width="wrap_content" android:layout_height="45dp" android:spinnerMode="dialog" /> 使用方法同listview,使用adapter
对BaseAdapter和ViewHolder进行抽取
public abstract class MyBaseAdapter<T,VH extends MyBaseAdapter.ViewHolder> extends BaseAdapter { //在构造器中初始化两个属性,数据和context public ArrayList<T> mList; public Context context; public VH mHolder; public MyBaseAdapter(ArrayList<T> list, Context context) { mList = list; this.context = context; mHolder=initViewHolder(); } public abstract VH initViewHolder(); @Override public int getCount() { return mList!=null?mList.size():0; } @Override public T getItem(int position) { return mList.get(position); } @Override public long getItemId(int position) { return position; } @Override public abstract View getView(int position, View convertView, ViewGroup parent); public abstract class ViewHolder{}}//使用方法 public class lvAdapter extends MyBaseAdapter<String,lvAdapter.MyViewHolder>{ public lvAdapter(ArrayList list, MainActivity context) { super(list, context); } @Override public MyViewHolder initViewHolder() { return new MyViewHolder(); } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView==null){ convertView = LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false); mHolder.tv= (TextView) convertView.findViewById(android.R.id.text1); convertView.setTag(mHolder); }else{ mHolder= (MyViewHolder) convertView.getTag(); } mHolder.tv.setText(mList.get(position)); return convertView; } public class MyViewHolder extends MyBaseAdapter.ViewHolder{ TextView tv; } }
阅读全文
0 0
- Android基础_需要使用adapter的控件,以及对BaseAdapter及其中的ViewHolder进行重构(三)
- ListView之BaseAdapter的基本使用以及ViewHolder模式
- ListView之BaseAdapter的基本使用以及ViewHolder模式
- ListView之BaseAdapter的基本使用以及ViewHolder模式
- ListView之BaseAdapter的基本使用以及ViewHolder模式
- ListView之BaseAdapter的基本使用以及ViewHolder模式
- ListView之BaseAdapter的基本使用以及ViewHolder模式
- ListView之BaseAdapter的基本使用以及ViewHolder模式
- Android中的自定义Adapter(继承自BaseAdapter)——与系统Adapter的调用方法一致——含ViewHolder显示效率的优化
- Android中的自定义Adapter(继承自BaseAdapter)——与系统Adapter的调用方法一致——含ViewHolder显示效率的优化
- Android中的自定义Adapter(继承自BaseAdapter)——与系统Adapter的调用方法一致——含ViewHolder显示效率的优化
- android使用ViewHolder对ListView进行优化
- [Android]对BaseAdapter中ViewHolder编写简化
- ListView的优化使用-抽取ViewHolder以及adapter类
- 对BaseAdapter和ViewHolder的封装
- Android 的ListView及其BaseAdapter的使用
- Android中BaseAdapter的viewHolder工具类
- Android数据适配器(Adapter)优化:使用高效的ViewHolder
- 2017百度之星初赛:A-1006. 度度熊的01世界(DFS)
- mysql的5.6版本支持分区吗?
- C++编写红警3 1.12版本修改器
- 慕课网《linux网络管理》笔记
- 【线段树】基础
- Android基础_需要使用adapter的控件,以及对BaseAdapter及其中的ViewHolder进行重构(三)
- 算法笔记(5)图的广度优先遍历和深度优先遍历
- 百度之星初赛(A)Hdu-6113.度度熊的01世界
- [leetcode]488. Zuma Game
- android文本编辑工具类之SpannableStringUtils
- Java中的String类型
- Struts2常量介绍
- heapster资源API
- HDU6108 小C的倍数问题(规律,2017"百度之星"程序设计大赛