ListView和条目点击事件、条目长按事件
step1:创建一个LinearLayout线性布局,属性值为vertical
里面写一个ListView列表控件
<ListViewandroid:id="@+id/listView"android:layout_width="match_parent"android:layout_height="match_parent" >
</ListView>
step2:回到MainActivity页面找到ListView这个控件
ListView listView = (ListView) findViewById(R.id.listView);
step3:给ListView设置适配器,(如果不设置的话是看不到列表的,并且没有数据也看不到),适配器,也就是创建一个类
listView.setAdapter(new LVAdapter(MainActivity.this, list));
final List<User> list = new ArrayList<User>();
for (int i = 0; i < 30; i++) {list.add(new User("卷猫"+i, "女", 18, R.drawable.ic_launcher));
}
step4:继承BaseAdapter(同时要实现四个方法)
step5:写属性
private Context mContext;// 必须要写的属性,不然无法创建视图
private List<User> list;// 数据必须要有 ,不然报错空指针
step6:写构造方法(传数据),用快捷键shift+alt+s,创建就好了【只需要一个有参构造】
step7:需要把数据传到适配器中
listView.setAdapter(new LVAdapter(MainActivity.this, list));
public int getCount() {// step8:设置条目个数return list.size();
}
step9:设置条目(第二个方法)——这里的意思就是用过position即集合的index索引来获取一个对象实体
public Object getItem(int position) {// 设置条目return list.get(position);
}
step10:获取条目id(第三个)
public long getItemId(int position) {// step10:设置条目idreturn position;
}
step11:设置视图(创建一个layout的xml视图){这里是在第四个方法里面写,也要把返回值写成convertView}
!!!!这一步有点难
public View getView(int position, View convertView, ViewGroup parent) {// step11:设置视图(创建一个laylout的xml)【可以运行了!!!!!】convertView = View.inflate(mContext, R.layout.item, null);
这里写第二个参数的时候,导包要导自己的包
❤:做到这来的时候需要创建一个layout,这里的inflate方法的param2是要放一个list的模板布局
step12:找控件(通过convertView找)
ImageView tx = (ImageView) convertView.findViewById(R.id.touxiang);
TextView name = (TextView) convertView.findViewById(R.id.name);
TextView gender = (TextView) convertView.findViewById(R.id.gender);
TextView age = (TextView) convertView.findViewById(R.id.age);
step13:设置内容——首先得到我们想要的对象
User user = list.get(position);
给imageView设置图片 tx.setImageResource(R.drawable.图片名字)tx.setImageResource(user.getTx());name.setText(user.getName());gender.setText(user.getGender());age.setText(""+user.getAge());//因为年龄是int型 不加“”可能会报错return convertView;
step14:设置条目的点击事件(在activity中)
listView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, list.get(position).toString(), Toast.LENGTH_SHORT).show();}
});
step15:条目的长按事件
listView.setOnItemLongClickListener(new OnItemLongClickListener() {@Overridepublic boolean onItemLongClick(AdapterView<?> parent, View view,int position, long id) {Toast.makeText(MainActivity.this, "don't click me! I'm not a person!!!!"+position, Toast.LENGTH_SHORT).show();return false;}
});
这样就可以运行了!
ListView和条目点击事件、条目长按事件相关推荐
- 安卓按钮点击事件、触摸事件、长按事件的实现——小白必备(三)
安卓按钮点击事件.触摸事件.长按事件的实现与根本 <?xml version="1.0" encoding="utf-8"?> <Linear ...
- 用鼠标按下事件和鼠标松开事件实现长按事件
用鼠标按下事件和鼠标松开事件实现长按事件 我这次要分享的是,用鼠标按下事件(onmousedown)和鼠标松开事件(onmouseup)实现长按事件,在这个长按事件里面我让它实现让数值自增的功能.首先 ...
- android listview item长按事件,ListView的点击事件,长按事件,数据刷新
1.刷新数据 当List中的数据发生改变时,使用listViewAdapter.notifyDataSetChanged();通知Adapter刷新数据. 在Activity中找到ListView,为 ...
- 基础复习——Button——按钮——触发事件——监听器(单独公共)——点击事件与长按事件——禁用恢复按钮...
按钮控件Button由TextView派生而来,它们之间的区别有: (1)Button拥有默认的按钮背景,而TextView默认无背景: (2)Button的内部文本默认居中对齐,而TextView的 ...
- ionic3中的gestures 手势事件- ioni3c长按事件
原文出处: http://www.ionic.wang/article-index-id-83.html ionic3中的gestures 手势事件如下: ionic3中的gestures 手势事件包 ...
- 【Flutter】Flutter 手势交互 ( 点击事件处理 | 点击 onTap | 双击 | 长按 onLongPress | 点击取消 | 按下 onTapDown | 抬起 onTapUp )
文章目录 一.Flutter 点击事件处理 二.GestureDetector 常用事件说明 三.完整代码示例 四.相关资源 一.Flutter 点击事件处理 Flutter 点击事件处理的组件是 G ...
- 虚幻引擎图文笔记:长按事件(Key Hold event)的蓝图实现
长按事件也是游戏中的常见需求,长按事件的蓝图实现和代码实现思路不太一样,虽然节点用的不多但逻辑有点绕,本文详细解读一下实现方法,并且用宏制作一个拿来即用的长按事件处理节点 长按事件(Key Hold ...
- android动态监听事件,Android-常见的事件监听
在Android的开发中,我们会遇到各种各样的事件监听.下面给大家分享一下,希望对Android感兴趣的小伙伴有帮助. Android常见的事件监听 单击事件onClickListener 长按事件o ...
- 实现listview条目点击显示和隐藏
##实现listview条目点击显示和隐藏 -主要修改适配器的getView方法 声明int类型 clickPosition //记录点击的条目position public int clickPos ...
最新文章
- Mac下编译Android源码,并导入IntelliJ IDEA进行源码阅读
- ubuntu安装配置samba共享
- curl 请求没反应_理解Redis的反应堆模式
- 分析mrp主要应用范围_华珀聚脲丨聚脲的主要应用范围
- 证监会依法对4宗案件作出行政处罚
- 【Elasticsearch】使用 Grok 和 Elasticsearch 为数据添加结构
- 单结晶体管的导电特性_适用于印刷电子的导电墨水可在纸和PET薄膜上印刷薄膜晶体管...
- 用SQL表达内连接和外链接
- android布局及其常用属性
- 举办了一个如何对外协作的讲座,4人到场
- UBUNTU配置samba
- 干货 | 利用SPSS进行高级统计分析第二期
- 32bit 天堂2脚本修改资料大全【客户端+服务端】
- 最优化理论与凸优化到底是干嘛的?
- 传说中的世界500强面试题-反应能力
- android9 三星 港版,三星S10+官方港版安卓9完整固件升级更新包:TGY-G9750ZHU1ASF1
- 单继承、多继承、菱形继承的虚函数表
- SLAM导航全栈书的正确打开方式(强烈推荐)
- 从碧桂园和兴海物联看物业信息化、数字化和智能化
- Android studio adb 不是内部或外部指令,也不是可运行的程序
热门文章
- matplotlib.pyplot——cmap直观理解
- word批注怎么删除计算机名字,【2人回答】Word批注中的名字怎么删除?-3D溜溜网...
- 如何调整图片像素大小
- 快递鸟代收货款接口demo-order
- 跟我一起学-Python爬取(酷我)
- Android 10 设置kernel log level
- 【历史上的今天】12 月 10 日:世界上第一位程序员诞生;Ada 语言发布;第一人称射击游戏的开拓者
- 漏洞扫描的原理与设计
- apmserv mysql5.1启动失败_APMServ Apache启动失败及MySQL5.1启动失败,请检查相关配置 解...
- web靶场 --- sqli-labs