----------2016年10月15日20:37:59
Android中ListView的使用:
1.创建XXXAdapter适配器,继承BaseAdapter,实现4个方法,其中getcount,getview必须实现
getcount:告诉listview要显示的条目数
getview:告诉listview每个条目显示的内容。
2.在XXXAdapter类中需要使用到context和list数据集合,所以要创建构造函数
public NewsAdapter(Context context,ArrayList<NewsBean> list){
this.list = list;
this.context = context;
}
3.getCount方法,listview要显示的条目的数量
public int getCount() {
return list.size();
}
4.getView(),返回返回一个复杂的布局作为条目的内容展示
public View getView(int position, View convertView, ViewGroup parent)
--->实现3和4,在listview中就可以显示内容,如果要实现点击事件,
还需实现getItem(int position)和getItemId(int position)
5.getItem(),根据position获取list中对应的Bean对象
public Object getItem(int position) {
return list.get(position);
}
6.getItemId(),获取条目的id
public long getItemId(int position) {
return position;
}
7.将xml文件转化为一个View对象,调用View的inflate()静态方法
View XXXView = View.inflate(Context context, int resource, ViewGroup root);
-->context:上下文
resource:要转化为View对象的layout的id
root:将layout用root(ViewGroup)包一层作为codify的返回值,一般传null
-->获取XXXView对象的子控件
XXXView.findViewById(R.id.xxx);
-->最后给子控件设置内容setxxxx();
8.为条目设置点击事件setOnItemClickListener()
xxxActivity实现OnItemClickListener()接口,重写onItemClick方法。
public void onItemClick(AdapterView<?> parent, View view, int position,long id)
--> parent:代表listviw
view:点击的条目上的那个view对象
position:条目的位置
id: 条目的id
根据条目的位置,获取被点击的条目对象
parent.getItemAtPosition(position);
底层调用adapter.getItem(position),所以要实现adapter的getItem()方法
9.创建Adapter的一个对象,设置给listview。
listview.setAdapter(new XXXAdapter(mContext));
ListView的优化:
1.在实现public View getView(int position, View convertView, ViewGroup parent)方法时,
判断convertView是否为空,为空创建一个View对象,不为空,则复用convertView
2.使用静态类ViewHolder
Android中ListView的使用:
1.创建XXXAdapter适配器,继承BaseAdapter,实现4个方法,其中getcount,getview必须实现
getcount:告诉listview要显示的条目数
getview:告诉listview每个条目显示的内容。
2.在XXXAdapter类中需要使用到context和list数据集合,所以要创建构造函数
public NewsAdapter(Context context,ArrayList<NewsBean> list){
this.list = list;
this.context = context;
}
3.getCount方法,listview要显示的条目的数量
public int getCount() {
return list.size();
}
4.getView(),返回返回一个复杂的布局作为条目的内容展示
public View getView(int position, View convertView, ViewGroup parent)
--->实现3和4,在listview中就可以显示内容,如果要实现点击事件,
还需实现getItem(int position)和getItemId(int position)
5.getItem(),根据position获取list中对应的Bean对象
public Object getItem(int position) {
return list.get(position);
}
6.getItemId(),获取条目的id
public long getItemId(int position) {
return position;
}
7.将xml文件转化为一个View对象,调用View的inflate()静态方法
View XXXView = View.inflate(Context context, int resource, ViewGroup root);
-->context:上下文
resource:要转化为View对象的layout的id
root:将layout用root(ViewGroup)包一层作为codify的返回值,一般传null
-->获取XXXView对象的子控件
XXXView.findViewById(R.id.xxx);
-->最后给子控件设置内容setxxxx();
8.为条目设置点击事件setOnItemClickListener()
xxxActivity实现OnItemClickListener()接口,重写onItemClick方法。
public void onItemClick(AdapterView<?> parent, View view, int position,long id)
--> parent:代表listviw
view:点击的条目上的那个view对象
position:条目的位置
id: 条目的id
根据条目的位置,获取被点击的条目对象
parent.getItemAtPosition(position);
底层调用adapter.getItem(position),所以要实现adapter的getItem()方法
9.创建Adapter的一个对象,设置给listview。
listview.setAdapter(new XXXAdapter(mContext));
ListView的优化:
1.在实现public View getView(int position, View convertView, ViewGroup parent)方法时,
判断convertView是否为空,为空创建一个View对象,不为空,则复用convertView
2.使用静态类ViewHolder