Android ListView的基本应用
ListView可以说是Android原生开发最基本、最重要的控件之一,良好的使用ListView可以让自己的项目得到提高,下面是ListView最简单的应用方式
定义ListView
list_view = (ListView) findViewById(R.id.list_view);
下面是测试的数据
plans = new ArrayList<String>();
for (int i = 0; i < 100; i++) {
plans.add("测试" );
} 设置自己的适配器,设置每一条的点击事件
MyAdapter mAdapter = new MyAdapter(this, plans);
list_view.setAdapter(mAdapter);
list_view.setOnItemClickListener(new OnItemClickHandler());
初始化适配器,填充数据
public MyAdapter(Context context, List<String> datas) {
mContext = context;
mInflater = LayoutInflater.from(mContext);
mDatas = datas;
// this.onClickListener = onClickListener;
}
得到ListView个数
@Override
public int getCount() {
return (mDatas != null ? mDatas.size() : 0);
}
得到ListView的item
@Override
public Object getItem(int position) {
return (mDatas != null ? mDatas.get(position) : null);
}
得到ListView的item的ID
@Override
public long getItemId(int position) {
return position;
}
ListViewitem的item填充,button点击事件的书写
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
// 下拉项布局
convertView = mInflater.inflate(R.layout.list_item_btn, null);
holder = new ViewHolder();
holder.avatar = (ImageView) convertView.findViewById(R.id.avatar);
holder.title = (TextView) convertView.findViewById(R.id.title);
holder.btn = (Button) convertView.findViewById(R.id.btn);
convertView.setTag(holder); } else {
holder = (ViewHolder) convertView.getTag();
} String plan = mDatas.get(position); if (plan != null) { holder.title.setText(plan);
holder.btn.setText(mDatas.get(position)); // 通常将position设置为tag,方便之后判断点击的button是哪一个
//按钮的点击事件
holder.btn.setTag(position);
holder.btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) { Button btn = (Button) v;
int pos = (Integer) btn.getTag();
System.out.println(" position2 :" + pos);
System.out.println(" data2 :" + mDatas.get(pos).toString());
btn.setText("111");
mDatas.set(position,"111"); }
});
}
return convertView;
} 效果图:

demo github地址:https://github.com/tempest1/ListBtn
Android ListView的基本应用的更多相关文章
- android ListView 九大重要属性详细分析、
android ListView 九大重要属性详细分析. 1.android ListView 一些重要属性详解,兄弟朋友可以参考一下. 首先是stackFromBottom属性,这只该属性之后你做好 ...
- Android ListView onItemClick Not Work
Android ListView onItemClick Not Work ListView item中有Button和RadioButton的时候,它的Item点击事件不起作用,需要设置item的属 ...
- 【腾讯Bugly干货分享】Android ListView与RecyclerView对比浅析--缓存机制
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/5811d3e3ab10c62013697408 作者:黄宁源 一,背景 Recy ...
- Android ListView 常用技巧
Android ListView 常用技巧 Android TextView 常用技巧 1.使用ViewHolder提高效率 ViewHolder模式充分利用了ListView的视图缓存机制,避免了每 ...
- Android listview addHeaderView 和 addFooterView 详解
addHeaderView()方法:主要是向listView的头部添加布局addFooterView()方法:主要是向listView的底部添加布局 需要注意的是添加布局的时候应该添加从父容器开始添加 ...
- Android ListView滑动过程中图片显示重复错乱闪烁问题解决
最新内容建议直接访问原文:Android ListView滑动过程中图片显示重复错乱闪烁问题解决 主要分析Android ListView滚动过程中图片显示重复.错乱.闪烁的原因及解决方法,顺带提及L ...
- Android --ListView分页
参考博客:Android ListView分页加载(服务端+android端)Demo 监听OnScrollListener事件 class OnListScrollListener implemen ...
- Android ListView ListActivity PreferenceActivity背景变黑的问题ZT
Android ListView ListActivity PreferenceActivity背景变黑的问题 ListView在滚动时背景会变暗甚至变黑,这个要从Listview的效果说起,默认的L ...
- android listview去掉分割线
1:android listview去掉分割线 1>设置android:divider="@null" 2>android:divider="#0000000 ...
- 【转】android ListView 几个重要属性
android ListView 几个重要属性 分类: Android2012-03-08 19:25 19324人阅读 评论(5) 收藏 举报 listviewandroid活动javalistnu ...
随机推荐
- HashMap?面试?我是谁?我在哪
现在是晚上11点了,学校屠猪馆的自习室因为太晚要关闭了,勤奋且疲惫的小鲁班也从屠猪馆出来了,正准备回宿舍洗洗睡,由于自习室位置比较偏僻所以是接收不到手机网络信号的,因此小鲁班从兜里掏出手机的时候,信息 ...
- spring boot sharding-jdbc实现分佈式读写分离和分库分表的实现
分布式读写分离和分库分表采用sharding-jdbc实现. sharding-jdbc是当当网推出的一款读写分离实现插件,其他的还有mycat,或者纯粹的Aop代码控制实现. 接下面用spring ...
- Java8新特性之二:方法引用
上一节介绍了Java8新特性中的Lambda表达式,本小节继续讲解Java8的新特性之二:方法引用.方法引用其实也离不开Lambda表达式. 1.方法引用的使用场景 我们用Lambda表达式来实现匿名 ...
- ES6数组扩展运算符
1 扩展运算符的运用 (1)复制数组 数组是复合的数据类型,直接复制的话,只是复制了指向底层数据机构的指针,而不是克隆一个全新的数组; const a1=[1,2]; const a2= a1; a2 ...
- CSS消除button标签的默认样式
button{ /*消除button的默认样式*/ /*这种写法是对所有的button标签同时生效*/ margin: 0px; padding: 0px; /*自定义边框*/ border: 0px ...
- Android 初次进入默认不弹出软键盘
[遇到问题] 初次进入某个界面时,当页面中有EditText ,会自动聚焦并弹出软键盘. [解决方法] getWindow().setSoftInputMode(WindowManager.Layou ...
- MIP 2016年终总结
MIP 项目组成立至今已经有一年多的时间,在过去的一年里,感谢各位的关注. 1. MIP JS 迭代 MIP JS 运行环境是 MIP 页面和 MIP 组件运行的基石.在 2016 年 4 月,MIP ...
- JavaScript正则表达式基础
ECMAScript 3 开始支持正则表达式,其语法和 Perl 语法很类似,一个完整的正则表达式结构如下: var expression = / pattern / flags ; 其中,模式(pa ...
- 微信小程序 base64 图片 canvas 画布 drawImage 实现
在微信小程序中 canvas drawImage API 传入的第一个参数是 imageResource 图片资源路径,这个参数通常由从相册选择图片 wx.chooseImage 或 wx.getIm ...
- 6.[leetcode] ZigZag Conversion
The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...