首先扯点别的:最近刚买了一个摇杆(玩拳皇97用的,拳霸的)。开始我以为买了摇杆我的拳皇水平会迅速提高,然而,上个星期6和建总打了一天被虐的惨啊,也是艰难。当时就想砸摇杆啊,最后还是忍住了,不能怪摇杆,还是自己的技术手法不行,还要多加练习。行,接下来进入正题吧。

第一点 : 前段时间发现了一个替代ListView的控件 RecyclerView,从网上看了看资料,说的天花乱坠,自己集成到自己的项目里,用了用,开始感觉还是不错的,但是当RecyclerView要展示的数据增加的时候,尤其是从网上加载图片的时候,就会变得十分的卡顿,而且RecyclerView并没有自带的点击事件和长按事件,也没有分割线,这三样都得自己实现,也是比较麻烦,痛定思痛,最后还是依然决定再回到ListView的怀抱里。好久时间没用ListView,已经很生疏了,今天就记载了一下ListView的简单用法。ps:从网络上加载图片还是使用universal-image-loader吧,别用Volley了,真心不好使。
先看效果,感觉有用再往下看

子项点击事件

子项长按事件,弹出删除对话框


接下啦就直接上代码了,MainActivity.java,代码很简单,直接看注释就行了

package com.example.listviewdemo;import java.util.ArrayList;
import java.util.List;import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ListView;public class MainActivity extends ActionBarActivity {private ListView listView;private List<MyBean>list;//数据源private MyAdapter adapter;//自定义的适配器@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView=(ListView) findViewById(R.id.listView);setAdapter();//listview添加子项的点击事件listView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) {//点击一项的时候,给一个ToastMyBean bean=adapter.getItem(position);Toast.makeText(MainActivity.this, bean.getTitle(), Toast.LENGTH_SHORT).show();}});//listview添加子项的长按事件listView.setOnItemLongClickListener(new OnItemLongClickListener() {@Overridepublic boolean onItemLongClick(AdapterView<?> arg0, View arg1,int position, long arg3) {deleteItem(position);return true;}});}/*** 长按的时候删除listview中的某一项* @param position 要删除的子项在listview中的位置*/private void deleteItem( final int position){AlertDialog dialog=new AlertDialog.Builder(MainActivity.this).setTitle("提示").setMessage("确实要删除当前项吗?").setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface arg0, int arg1) {list.remove(position);adapter.notifyDataSetChanged();}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface arg0, int arg1) {// 点击取消。没有动作}}).show();}/*** 该listview 添加适配器*/private void setAdapter(){list=new ArrayList<MyBean>();//给list装几条数据initData();adapter=new MyAdapter(MainActivity.this, R.layout.listview_item, list);listView.setAdapter(adapter);//当adapter中数据改变的时候时,通知listviewadapter.notifyDataSetChanged();}/*** 给list初始化数据*/private void initData() {for (int i = 0; i <10; i++) {MyBean bean=new MyBean("Title "+i, "Detail "+i);list.add(bean);}}
}

MyAdapter .java

package com.example.listviewdemo;import java.util.List;import android.content.Context;
import android.text.Layout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;public class MyAdapter extends ArrayAdapter<MyBean> {private  int resource;private Context context;public MyAdapter(Context context, int resource, List<MyBean> lists) {super(context, resource, lists);this.context=context;this.resource=resource;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {View view;ViewHolder holder;MyBean bean=getItem(position);if (convertView==null) {view=LayoutInflater.from(context).inflate(resource, parent, false);holder=new ViewHolder();holder.textViewTitle=(TextView) view.findViewById(R.id.textviewTitle);holder.textViewDetail=(TextView) view.findViewById(R.id.textviewDetail);view.setTag(holder);} else {view=convertView;holder=(ViewHolder) view.getTag();}holder.textViewTitle.setText(bean.getTitle());holder.textViewDetail.setText(bean.getDetail());return view;}//内部类,用来提高listView的性能private static class ViewHolder{TextView textViewTitle;TextView textViewDetail;}}

MyBean.java 实体类

package com.example.listviewdemo;public class MyBean {private String title;private String detail;public MyBean(String title, String detail) {this.title=title;this.detail=detail;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getDetail() {return detail;}public void setDetail(String detail) {this.detail = detail;}}

行,差不多就是这样了,今天天气比较冷,赶紧钻进被窝看小说吧,这双腿冻得冰凉啊。如果想要完整的工程代码连接地址如下http://download.csdn.net/detail/leilifengxingmw/9448400

Android ListView 的基本用法相关推荐

  1. Android—— ListView 的简单用法及定制ListView界面

    一.ListView的简单用法 2. 训练目标 1) 掌握 ListView 控件的使用 2) 掌握 Adapter 桥梁的作用 实现步骤: 1)首先新建一个项目, 并让ADT 自动帮我们创建好活动. ...

  2. Android listview与adapter用法

    2019独角兽企业重金招聘Python工程师标准>>> 一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListVi ...

  3. Android ListView+ArrayAdapter简单用法

    ListView+ArrayAdapter可以几行代码实现一个简单的列表,不用再写一个复杂的继承BaseAdapter的Adapter 最简单的示例 直接用android自带的item布局,几行代码搞 ...

  4. listview与adapter用法

    Android listview与adapter用法 listview与adapter用法 博客分类: android 一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的 ...

  5. android 继承listview,Android listView 继承ListActivity的用法

    Android listView 继承ListActivity的用法 在手机中经常有列表方式.如果Activity中只有唯⼀⼀个List(这也是通常的情况),可以继 承ListActivity来实现. ...

  6. Android ListView常用用法(结合长按、数据库等)

    http://www.iteye.com/topic/540423 ListView是比较常用的控件,但一直都觉得创建ListView步骤有点繁琐,故在此总结一下,方便查阅. 程序效果是实现一个Lis ...

  7. Android ListView常用用法(二)

    来自:51CTO论坛 原帖:http://mobile.51cto.com/android-254823.htm Android开发:实现带图片和checkbox的listview 项目要用到一个li ...

  8. Android ListView常用用法

    ListView是比较常用的控件,但一直都觉得创建ListView步骤有点繁琐,故在此总结一下,方便查阅. 程序效果是实现一个ListView,ListView里面有标题,内容和图片,并加入点击和长按 ...

  9. android ListView包含Checkbox滑动时状态改变

    题外话: 在xamarin android的开发中基本上所有人都会遇到这个小小的坎,的确有点麻烦,当时我也折腾了好一半天,如果你能看到这篇博客,说明你和我当初也是一样的焦灼,如果你想解决掉这个小小的坎 ...

最新文章

  1. mybatis连接mysql数据库连接池_对于数据库连接池的一些思考和MyBatis的集成与使用...
  2. 聚类分析基础知识总结及实战解析
  3. Docker | makefile错误提示 *** missing separator. Stop.
  4. jquery 删除字符串最后一个字符的方法
  5. instanceof运算符_Java 8中的instanceof运算符和访客模式替换
  6. 6 rethad 自定义硬盘_图文详解zabbix配置自定义监控项过程
  7. boot空间不足 linux,linux——boot空间不足
  8. volatile指令重排_volatile可见性和指令重排
  9. 酷狗音乐linux版_酷狗音乐PC版 9.1新版本初体验
  10. windows 下安装redis
  11. 基于tkinter的九型人格测试系统介绍
  12. 职称计算机internet应用模块,全国职称计算机考试题库(Internet应用XP版模块)
  13. wpsa3版面怎么变成a4、排版不变_worda3变a4排版打印 word如何将a3排版成a4
  14. java kinect_使用java来做Kinect开发
  15. C++学习(四一七)AndroidStudio中的libs和jniLibs
  16. 最全UnityHub下载链接Unity2022~2017各版本+Unity5.x【间歇性更新】
  17. android第三方apk找不到/system/lib64/里面的系统库
  18. 找最大ASCII字符
  19. 3d Max安装失败(Microsoft Visual C++ 2010 Redistributable)
  20. R 填充数据集中的缺失值

热门文章

  1. ModelSim free
  2. 2020最新Python入门笔记,建议收藏
  3. CSS_控制 video 标签的控制栏组件(隐藏、显示进度条、播放按钮、全屏按钮等)
  4. Ajax -模板引擎方法 -循环、分支、原生语法、实例
  5. jwt-auth之三--Auth认证
  6. win10和linux双系统免u盘,WIN10下免U盘安装Ubuntu双系统
  7. php 进程通信系列 (一) 命名管道
  8. 面对“耳鼻喉专科医院营销乏力”的正确做法,快收了它
  9. 快来!礼物替你选好了:2022年神秘的程序员周历!
  10. vs2015 professional 安装遇到的问题