关于Android的ListView一点使用方法

  在物联网学习中我需要用到Android来获取PC端数据库内的表数据并显示在屏幕上,因此我决定用WebService来连接数据库获取数据,用ListView组件显示数据。这里我将获取到的数据存入List泛型中,就不演示如何获取数据。

  ListView是Android常用的一个组件,可以以列表的方式显示数据,并且能自适应内容。ListView组件并非一次加载所有数据,而是屏幕显示多少行数据就加载多少行数据。但往下拖动时再加载新的一行数据,且当屏幕第一行被移出屏幕时内存会被回收,往下同理。所以当数据量很大时不用担心用ListView会出问题。

  ListView使用setAdapter()方法来绑定数据适配器,这里我选择 使用一个类来继承BaseAdapter,BaseAdapter类有四个必须实现的方法,getCount(),getView(),getItem(),getItemId()。其中,重要的方法为getCount()和getView()

public class Myadapter extends BaseAdapter{
    @Override
    public int getCount() {
        return null; //返回数据的总行数
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        return null; //返回一行数据
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }
}    

  每当加载新一条数据时便会调用一次getVIew(int position, View convertView, ViewGroup parent)方法,其中position为将要加载的数据的行号。

  为了让数据显示的更好看我们可以先在res/layout文件夹下新建样式表。

  

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

         <TextView
             android:id="@+id/ID"
             android:gravity="center"
             android:text="ID"
             android:background="#22000000"
             android:layout_width="0dp"
             android:layout_weight="1"
             android:layout_height="wrap_content"/> <!--每列的样式-->
          <View
             android:layout_width="1dp"
             android:background="#000000"
             android:layout_height="wrap_content"/> <!--每列后的竖线-->

         <TextView
             android:id="@+id/NAME"
             android:gravity="center"
             android:background="#22000000"
             android:layout_width="0dp"
             android:layout_weight="1"
             android:layout_height="wrap_content"
             android:text="NAME"/>
          <View
             android:layout_width="1dp"
             android:background="#000000"
             android:layout_height="wrap_content"/>
          <TextView
             android:id="@+id/PASSWORD"
             android:gravity="center"
             android:background="#22000000"
             android:layout_width="0dp"
             android:layout_weight="1"
             android:layout_height="wrap_content"
             android:text="PASWORD"/>
</LinearLayout>

  定义好每一行的View样式后我们回到getView()中方法中

public View getView(int position, View convertView, ViewGroup parent) {
    View view =View.inflate(nextActivity.this, R.layout.list_resoure, null);//R.layout.list_resoure为刚刚定义好的样式
    TextView tv_id = (TextView) view.findViewById(R.id.ID);
    TextView tv_name = (TextView) view.findViewById(R.id.NAME);
    TextView tv_psd = (TextView) view.findViewById(R.id.PASSWORD);//获取到list_resoure中的控件
    tv_id.setText(userInfo.get(position).getId());
    tv_name.setText(userInfo.get(position).getName());
    tv_psd.setText(userInfo.get(position).getPassword());//为list_resoure中的控件赋值,userInfo为所有要显示的数据的List泛型
    return view;//返回这一行数据显示在屏幕上
}

  不要忘记在getCount()方法中返回数据的总行数

@Override
public int getCount() {
    return userInfo.size();//返回值为int类型,表示数据的总行数
}

  getItem()和getItemId()方法可无视。

  最后,使用ListView的setAdapter来绑定我们定义好的数据适配器Myadpter了

ListView lv = (ListView) findViewById(R.id.listview);
lv.setAdapter(new Myadapter());

  

时间: 2024-08-24 09:40:37

关于Android的ListView一点使用方法的相关文章

Android使用ListView使用方法

Android使用ListView应该注意的地方 在ListView中设置Selector为null会报空指针? mListView.setSelector(null);//空指针 试试下面这种: mListView.setSelector(new ColorDrawable(Color.TRANSPARENT)); 如何让ListView初始化的时候就选中一项? ListView需要在初始化好数据后,其中一项需要呈选中状态.所谓"选中状态"就是该项底色与其它项不同,setSelect

Android中ListView的几种常见的优化方法

Android中的ListView应该算是布局中几种最常用的组件之一了,使用也十分方便,下面将介绍ListView几种比较常见的优化方法: 首先我们给出一个没有任何优化的Listview的Adapter类,我们这里都继承自BaseAdapter,这里我们使用一个包含100个字符串的List集合来作为ListView的项目所要显示的内容,每一个条目都是一个自定义的组件,这个组件中只包含一个textview: Activity: package com.alexchen.listviewoptimi

Android ListView动画实现方法

在Android中listview是最常用的控件之一,但是有时候我们会觉得千篇一律的listview看起来过于单调,于是就产生了listView动画,listview加载了动画会让用户体验更好,本期就分享一些listview动画以及实现方法,效果图 相信大家都熟悉Android的Tween动画,前四种动画就是Translate,Alpha,Rotate,Scale,最后一种Rotate3d则是用了一个3D旋转动画工具类Rotate3dAnimation,这个类的构造函数中接收一些3D旋转时所需用

android 修改listview item view 的方法(转)

android 修改listview item view 的方法 具体的解答办法很简单: 代码如下 : 1.获取需要更新的view int visiblePosition = mListView.getFirstVisiblePosition(); View view = mListView.getChildAt(position - visiblePosition); mListView.getAdapter().getView(position, view, mListView); 2.通过

android用存到缓存的方法来保存ListView里的数据

对于这样的数据: <?xml version="1.0" encoding="utf-8" ?> <rss><sid>77f265bb46de068e78f35afbadec62af</sid><count>3</count><control>0</control> <mblog><uid>1195224593</uid><fav

android之ListView,详细介绍实现步骤,举例,自定义listview适配器

android之ListView,详细介绍实现步骤,举例,自定义listview适配器 09. 四 / android基础 / 没有评论 本文来源于www.ifyao.com禁止转载!www.ifyao.com android中如何使用listView是比较重要的,因为很多时候都需要将数据库中的数据以列表显示, 具体使用步骤:大体 1,建立一个item.xml文件,此布局文件布局布局如何具体显示列表中的每一个条目 2,在要使用listview的界面中添加listview控件. 3,activit

Android使用ListView应该注意的地方

在ListView中设置Selector为null会报空指针? mListView.setSelector(null);//空指针 试试下面这种: mListView.setSelector(new ColorDrawable(Color.TRANSPARENT)); 如何让ListView初始化的时候就选中一项? ListView需要在初始化好数据后,其中一项需要呈选中状态.所谓"选中状态"就是该项底色与其它项不同,setSelection(position)只能定位到某个item,

[Android]用ListView做IM聊天时遇到的问题

很羞愧的是,第一个有关程序的随笔就是一处我暂时无法解决并解释的问题, 先记录下来吧, 等以后弄明白了再补充. 最近在做一个android端的IMAPP, 通讯协议采用的XMPP(因为时间比较紧,并属于内部软件,一切从简了), 服务器用的openfire二次开发, android端自然就是asmack了, 网上有很多例子, 封装的已经很到位了. 在做的过程中, 聊天页肯定是采用ListView了.大约得效果如下图: 不好意思哈,这个效果图是仿的微信... 大家都用过微信,知道进入聊天界面时,Lis

Android自定义ListView实现侧滑子菜单

惯例,先放效果图,DEMO在最后 想当年博主刚接触Android的时候,看到这个效果心中只有膜拜啊,如果慢慢的自己水平也上来了,就把当年的一个想法给圆满了吧. 好了,废话不多说,先总结总结这个效果: 首先是需要自定义ListView,这点是必须的,然后在ListView的onTouchEvent方法中对事件进行处理 普通的Item的话,是没办法实现这样侧滑的,即使你塞一个HorizontalScrollView进去都不行,所以也必须自定义一个ItemView实现左右侧滑 由于ListView的l