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));
    然后回到activity写数据!!!!! 【这里的数据再正常情况下是要用网络获取,在这里就使用静态数据了!】
    在这里还要创建一个bean的实体类,这里创建的是user对象,进行封装就可以了!
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));
step8:然后回到adapter适配器哪里!设置条目个数(即继承父类时重写的第一个方法)
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和条目点击事件、条目长按事件相关推荐

  1. 安卓按钮点击事件、触摸事件、长按事件的实现——小白必备(三)

    安卓按钮点击事件.触摸事件.长按事件的实现与根本 <?xml version="1.0" encoding="utf-8"?> <Linear ...

  2. 用鼠标按下事件和鼠标松开事件实现长按事件

    用鼠标按下事件和鼠标松开事件实现长按事件 我这次要分享的是,用鼠标按下事件(onmousedown)和鼠标松开事件(onmouseup)实现长按事件,在这个长按事件里面我让它实现让数值自增的功能.首先 ...

  3. android listview item长按事件,ListView的点击事件,长按事件,数据刷新

    1.刷新数据 当List中的数据发生改变时,使用listViewAdapter.notifyDataSetChanged();通知Adapter刷新数据. 在Activity中找到ListView,为 ...

  4. 基础复习——Button——按钮——触发事件——监听器(单独公共)——点击事件与长按事件——禁用恢复按钮...

    按钮控件Button由TextView派生而来,它们之间的区别有: (1)Button拥有默认的按钮背景,而TextView默认无背景: (2)Button的内部文本默认居中对齐,而TextView的 ...

  5. ionic3中的gestures 手势事件- ioni3c长按事件

    原文出处: http://www.ionic.wang/article-index-id-83.html ionic3中的gestures 手势事件如下: ionic3中的gestures 手势事件包 ...

  6. 【Flutter】Flutter 手势交互 ( 点击事件处理 | 点击 onTap | 双击 | 长按 onLongPress | 点击取消 | 按下 onTapDown | 抬起 onTapUp )

    文章目录 一.Flutter 点击事件处理 二.GestureDetector 常用事件说明 三.完整代码示例 四.相关资源 一.Flutter 点击事件处理 Flutter 点击事件处理的组件是 G ...

  7. 虚幻引擎图文笔记:长按事件(Key Hold event)的蓝图实现

    长按事件也是游戏中的常见需求,长按事件的蓝图实现和代码实现思路不太一样,虽然节点用的不多但逻辑有点绕,本文详细解读一下实现方法,并且用宏制作一个拿来即用的长按事件处理节点 长按事件(Key Hold ...

  8. android动态监听事件,Android-常见的事件监听

    在Android的开发中,我们会遇到各种各样的事件监听.下面给大家分享一下,希望对Android感兴趣的小伙伴有帮助. Android常见的事件监听 单击事件onClickListener 长按事件o ...

  9. 实现listview条目点击显示和隐藏

    ##实现listview条目点击显示和隐藏 -主要修改适配器的getView方法 声明int类型 clickPosition //记录点击的条目position public int clickPos ...

最新文章

  1. Mac下编译Android源码,并导入IntelliJ IDEA进行源码阅读
  2. ubuntu安装配置samba共享
  3. curl 请求没反应_理解Redis的反应堆模式
  4. 分析mrp主要应用范围_华珀聚脲丨聚脲的主要应用范围
  5. 证监会依法对4宗案件作出行政处罚
  6. 【Elasticsearch】使用 Grok 和 Elasticsearch 为数据添加结构
  7. 单结晶体管的导电特性_适用于印刷电子的导电墨水可在纸和PET薄膜上印刷薄膜晶体管...
  8. 用SQL表达内连接和外链接
  9. android布局及其常用属性
  10. 举办了一个如何对外协作的讲座,4人到场
  11. UBUNTU配置samba
  12. 干货 | 利用SPSS进行高级统计分析第二期
  13. 32bit 天堂2脚本修改资料大全【客户端+服务端】
  14. 最优化理论与凸优化到底是干嘛的?
  15. 传说中的世界500强面试题-反应能力
  16. android9 三星 港版,三星S10+官方港版安卓9完整固件升级更新包:TGY-G9750ZHU1ASF1
  17. 单继承、多继承、菱形继承的虚函数表
  18. SLAM导航全栈书的正确打开方式(强烈推荐)
  19. 从碧桂园和兴海物联看物业信息化、数字化和智能化
  20. Android studio adb 不是内部或外部指令,也不是可运行的程序

热门文章

  1. matplotlib.pyplot——cmap直观理解
  2. word批注怎么删除计算机名字,【2人回答】Word批注中的名字怎么删除?-3D溜溜网...
  3. 如何调整图片像素大小
  4. 快递鸟代收货款接口demo-order
  5. 跟我一起学-Python爬取(酷我)
  6. Android 10 设置kernel log level
  7. 【历史上的今天】12 月 10 日:世界上第一位程序员诞生;Ada 语言发布;第一人称射击游戏的开拓者
  8. 漏洞扫描的原理与设计
  9. apmserv mysql5.1启动失败_APMServ Apache启动失败及MySQL5.1启动失败,请检查相关配置 解...
  10. web靶场 --- sqli-labs