android listview 使用

listview mysql 安卓_Android——ListView与数据库的结合 前言ListView与数据库结合使用也是一种非常常见的手段。例如歌单的ListView,在我们重新启动应用的时候数据依旧存在,如下图:具体实现一、准备Activity和ListViewActivity要继承ListActivity或AppCompatActivity(推荐后者)ListView不需要先准备适配器Adapter,只需要初始化好ListView就行了二、创建数据库新建一个类MySQLi... 阅读详情


今天在做项目的时候用了自定义listview以及自定义的item、adapter。现在把其中需要注意的地方记录下来:

1、item内如果有button等控件时,在监听listview的onitemclick事件时,焦点会被item内的button、imagebutton等控件抢走,从而导致在listview设置了onitemclick事件后不会被触发。解决方法是在初始化item的时候屏蔽掉其内部button等控件的焦点获取,具体方法可以在自定义item的根控件中调用:

setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); 


这样就能阻塞字控件抢夺焦点,listview的onitemclick就能被正确触发,同时对item内部的button等控件也没有影响,他们在被点击时照样可以触发自身的点击事件。

2、当listview需要添加headerview时,可以通过调用listview的addHeaderView(headView, null, false) 方法,该方法还有一个重载方法 addHeaderView(headView);这两个方法的区别是前一个方法可以控制header是否可以被selected,如果不想被selected则将第三个参数设置成false;

3、接着上面说的添加header,添加header时调用的addHeaderView方法必须放在listview.setadapter前面,意思很明确就是如果想给listview添加头部则必须在给其绑定adapter前添加,否则会报错。原因是当我们在调用setAdapter方法时会android会判断当前listview是否已经添加header,如果已经添加则会生成一个新的tempadapter,这个新的tempadapter包含我们设置的adapter所有内容以及listview的header和footer。所以当我们在给listview添加了header后在程序中调用listview.getadapter时返回的是tempadapter而不是我们通过setadapter传进去的adapter。如果没有设置adapter则tempadapter与我们自己的adapter是一样的。listview.getadapter().getcount()方法返回值会比我们预期的要大,原因是添加了header。

4、接着上面的tempadapter说,我们自定义adapter里面的getitem方法里面返回的position是不包括header的,是我们自定义adapter中数据position编号从0开始,也就是说与我们传进去的list的位置是一样的。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Log.i("adapter", "position:"+position);   //这个position就是我们数据的真实位置
  }

而listview的onitemclick方法中:

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) 

arg2是当前click的位置,这个位置是指在tempadapter中的位置,从0开始如果listview中添加了header则0代表header。

android开发-12】androidListView的详细用法介绍 androidListView的详细用法参考代码 阅读详情

相关推荐

安卓ListView使用

listview是一个以垂直方式在项目中显示视图的列表。是一种不能实现确定视图中的内容的适配器视图(adapter view)。数据和视图的绑定,需要通过继承ListViewAdapter接口的适配器实现。确保当上下滚动的时候,能够动态刷新视图内容。通常我们都会自定义一个继承自BaseAdapter(已继承ListViewAdapter),ArrayAdapter(继承自BaseAdapter),SimpleAdapter(继承自BaseAdapter)的类,重写getView()方法,实现自己想要的功能。

apple_51426592的博客 1401

Android---ListView使用

1、使用步骤 /** * 使用listView的步骤 * 1、创建一个listView布局 * 2、创建bean,里面存放着每个listView item的属性值 * 3、在ListView中通过list存放bean对象 * 4、创建一个Adapter类,并继承BaseAdapter,实现四个方法,并修改返回值(通过list做桥梁) * 5、在ListView中创建Adapter对象,并通过setAdapter将listView和数据进行绑定 * 6、可以通过添加监听事件,为item添加相应监

qq_43623013的博客 5012

Android入门到项目实战--3.4】—— ListView控件的使用

Android入门到项目实战—— ListView控件的使用、简单使用、进一步使用、对代码优化提高效率、ListView控件的点击事件的使用

个人博客 4458

androidlistview使用方法,ListView 使用详解

和您一起终身学习,这里是程序员Android本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:一、ListView 简介二、ListView 常用属性三、ListView主要使用方法如下四、使用android:entries 为ListView准备数据五、使用ListListView 准备数据六、ListView 添加头,尾,空布局实现七、使用Simpl...

weixin_39738667的博客 1835

Android安卓开发基础-ListView

介绍安卓控件ListView在java文件及xml文件中的使用

weixin_53743049的博客 723

listview mysql 安卓_android ListView详解

android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。抽空把对ListView使用做了整理,并写了个小例子,如下图。列表的显示需要三个元素:1.ListVeiw 用来展示列表的View。2.适配器 用来把数据映射到ListView上的中介。3.数据 具体的将被映射的字符串,图片,或者基本组件。根据列表的适配器类型,列表分为三种,Ar...

weixin_39980129的博客 247

android中的 listview控件,安卓基础之ListView控件

ListView控件ListView是我们Android中最重要的控件之一,是用于对数据进行列表展示的控件。ListView的特点: 屏幕上可以展示几个控件, ListView就初始化几个,节省内存,防止内存溢出。 通过使用convertView对创建的视图对象进行复用,ListView始终保持创建的对象个数为: 屏幕显示的条目的个数 + 1。 ListView自带ScrollV...

weixin_39832628的博客 946

安卓Android Studio 控件之 卡片式ListView效果

在安卓APP开发过程中,ListView是常用的数据展示控件,不过系统自带的样式过于单调,而且显示数据单一。下面介绍一个卡片式的ListView控件。同样是经过测试,拿来主义,根据步骤一步步就能实现。 首先总体介绍一下思路:还是使用ListView控件,但是样式需要自己定义一个xml文件,在ListView控件引用样式时调用自己定义的xml文件即可。 主要功能:以卡片样式显示数据,卡片内数据可以实现点击事件的操作。以便于下一步操作选中的数据。 先上效果图: 下面介绍实现过程: 1、在a...

jackiesky1206的博客 6395

listview mysql 安卓_Android ListView

Android ListView是一个组几个项目,并显示在垂直滚动列表。列表项会使用适配器自动插入到列表中,从内容源,如数组或数据库。一个适配器实际上UI组件和数据源之间的桥梁,填充数据到UI组件。适配器可以用来提供数据如:spinner,列表视图,网格视图等。ListView和GridView 是 AdapterView 的子类,它们可以填充绑定到一个适配器,它从外部源检索数据,并创建一个视图表...

weixin_33772892的博客 287

Android Studio 安卓开发学习---双ListView布局、ListView适配器、ListView分类实现

前言 学校要求做安卓项目,想实现一个食堂点餐的app,初学Java,有很多不足,下面仅作为个人经验的分享。欢迎大佬的指点,也希望对后来的同学有用。 1. 双 ListView 布局 我碰到的第一个难题是双ListView如何实现,其实很简单,只需要在一个xml中,使用一个线性布局即可。 为了实现日后的双ListView联动这是必不可少的第一步,关于ListView联动我日后在写。 <?xm...

weixin_43990171的博客 1700

listview组件android,安卓基础之ListView控件

ListView控件ListView是我们Android中最重要的控件之一,是用于对数据进行列表展示的控件。ListView的特点: 屏幕上可以展示几个控件, ListView就初始化几个,节省内存,防止内存溢出。 通过使用convertView对创建的视图对象进行复用,ListView始终保持创建的对象个数为: 屏幕显示的条目的个数 + 1。 ListView自带ScrollV...

weixin_39536728的博客 328

java 安卓 listview_Android 自定义ListView

本文讲实现一个自定义列表的Android程序,程序将实现一个使用自定义的适配器(Adapter)绑定数据,通过contextView.setTag绑定数据有按钮的ListView。系统显示列表(ListView)时,首先会实例化一个适配器,本文将实例化一个自定义的适配器。实现自定义适配器,必须手动映射数据,这时就需要重写getView()方法,系统在绘制列表的每一行的时候将调用此方法。ListVi...

weixin_35410816的博客 582

android listview添加headview,安卓开发从零开始

5、设置item点击事件 lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) { //position 如果有headview position =0 的第一个为headview Toast.makeText(MainActivity.this, “positi

m0_64319298的博客 1289

android布局 listview,安卓布局如何让 listviewlistview上的布局一起滚动

xml布局如下 但是不能实现我说的listview 和上面布局一起滚动android:layout_width="match_parent"android:layout_height="match_parent"xmlns:app="http://schemas.android.com/apk/res-auto"android:orientation="vertical">android:l...

weixin_35433930的博客 275

安卓Android开发:listView+checkbox的简单实现

安卓Android开发:listView+checkbox的简单实现 项目要用到列表显示并实现每一个条目item的选择。参考网上的listView案例基本上都是在getview处用 holder 作tag来完成的。我用了一下但是在滚动过程中经常出现错乱。holder方案的思路就是只加载显 示部分的数据。这样做的优势是更高效,特别是item数据比较多的情况下。我这里用的方法是在调用数 据表格

jstaxi的专栏 943

安卓Android开发,左边listView右边Fragment切换页面

安卓Android开发,左边listView右边Fragment切换页面

m0_63222566的博客 2253

Android Studio安卓开发--ListView学习整理

Android Studio安卓开发--ListView学习整理: ListView的简单用法;定制ListView的界面;ListView的点击事件

gyeolhada的博客 3889

Android listview使用

安卓listview使用 MainActivity public class MainActivity extends AppCompatActivity { private ListView listView; private MyAdapter adapter; private List&amp;amp;lt;Person&amp;amp;gt; list; @Override pro...

qq_41659081的博客 2476
上一篇: android listview 使用--转载
下一篇: android 常用对话框 ---转载
coco403
博客等级 码龄19年 18粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值