Android笔记:ListView

listview属性

  android:divider属性,可以指定ListView 分隔线的颜色,#0000 表示将分隔线设为透明色。

listview效率的问题

  adapter的三个参数int position, View convertView, ViewGroup parent

    1,直接使用view 每次打开每次加载,效率最低。

      LayoutInflater inflater = LayoutInflater.from(mContext);

      View view1 = inflater.inflate(R.layout.fruit_item, null);

    2,使用convertView(缓存)

      if (convertView == null) {
         view = LayoutInflater.from(getContext()).inflate(resourceId, null);
       } else {
         view = convertView;
       }

    3,将控件的加载也加入缓存

      public View getView(int position, View convertView, ViewGroup parent) {
        Fruit fruit = getItem(position);
        View view;
        ViewHolder viewHolder;
        if (convertView == null) {
          view = LayoutInflater.from(getContext()).inflate(resourceId, null);
          viewHolder = new ViewHolder();
          viewHolder.fruitImage = (ImageView) view.findViewById(R.id.fruit_image);
          viewHolder.fruitName = (TextView) view.findViewById(R.id.fruit_name);
          view.setTag(viewHolder); // 将ViewHolder存储在View中
        } else {
          view = convertView;
          viewHolder = (ViewHolder) view.getTag(); // 重新获取ViewHolder
        }
        viewHolder.fruitImage.setImageResource(fruit.getImageId());
        viewHolder.fruitName.setText(fruit.getName());
        return view;
      }
      class ViewHolder {
        ImageView fruitImage;
        TextView fruitName;
      }

listview点击事件

  ListView listView = (ListView) findViewById(R.id.list_view);

  listView.setAdapter(adapter);

  listView.setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> parent, View view,      int position, long id) {  

      Fruit fruit = fruitList.get(position);

      Toast.makeText(MainActivity.this, fruit.getName(), 0).show();

    }

  });

时间: 2025-01-10 18:02:49

Android笔记:ListView的相关文章

[Android学习笔记]ListView中含有Button导致无法响应onItemClick回调的解决办法

转自:http://www.cnblogs.com/eyu8874521/archive/2012/10/17/2727882.html 问题描述: 当ListView的Item中的控件只是一些展示类控件时(比如TextView),注册ListView的监听setOnItemClickListener之后,当点击Item时候会触发onItemClick回调. 但是,当Item中存在Button(继承于Button)的控件时,onItemClick回调不会被触发. 解决方案: 在Item的布局文件

Android笔记(二十五) ListView的缓存机制与BaseAdapter

之前接触了ListView和Adapter,Adapter将数据源和View连接起来,实际应用中,我们要显示的数据往往有很多,而屏幕只有那么大,系统只能屏幕所能显示的内容,当我们滑动屏幕,会将旧的内容放入到缓冲池中,再从缓存池中拿出新的内容显示出来,这就是ListView的缓存机制,这一机制可以极大的节省系统资源. BaseAdapter BaseAdapter通常用于被扩展,扩展BaseAdapter可以对各项列表进行最大限度的定制. 我们可以用自己的类去继承BaseAdapter,然后实现g

Android笔记十一.ListView+Adapter

深入理解Adapter 一.ListView ListView是Android开发过程中较为常见的组件之一,它将数据以列表的形式展现出来.一般而言,一个ListView由以下三个元素组成: 1.View:展示列表视图,通常是一个xml所指定的.大家都知道Android的界面基本上是由xml文件负责完成的,所以ListView的界面也理所应当的使用了xml定义.例如在ListView中经常用到的"android.R.layout.simple_list_item_1"等, 就是Andro

安卓第六天笔记--ListView

安卓第六天笔记--ListView 1.AdapteView AdapteView 继承ViewGroup它的本质是容器 AdapterView派生了3个子类: AbsListView AbsSpinner AdapterViewAnimation 这3个类是抽象类 实际使用中采用的是它们的子类 2.Adpate结构 3.使用ArrayAdapter完成ListView显示 ListView使用的是ListAdapter类型的适配器 由于只显示文字,所有使用ArrayAdapter ArrayA

Android 笔记之错误记录

前言--好记性不如烂笔头,记录Android学习过程中遇到的各种问题BUG.O(∩_∩)O 错误1 -- Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0 错误原因--一般是int 型数据赋给String ,然后让TextView显示就会出现如上错误. 解决办法--用String.valueOf 或者在int数据后加"" 错误2-- 在布局文件中,文本的设置使用如下写法

学习笔记ListView初识

1.ListView的基本使用 作用:android系统中显示列表的控件 2.两种适配器(ArrayAdapter.simpleAdapter) 数据适配器 是连接数据源和视图界面的桥梁作用:把复杂的数据(数组.链表.数据库.集合等)填充到指定视图界面上 ArrayAdapter:用于绑定格式单一数据数据源:集合或者数组SimpleAdapter:用于绑定格式复杂的数据数据源:只能是特定泛型的集合实现过程:新建适配器->添加数据源到适配器->视图加载适配器 使用ArrayAdapter: pa

Android笔记之 开机自启动

在项目中用到开机自动运行功能,因此学习了下,在此作为笔记记录下. 主要是以下4个步骤: 1.原理了解: 通过搜查资料发现,当Android启动时,会发出一个系统广播,内容为ACTION_BOOT_COMPLETED,它的字符串常量表示为android.intent.action.BOOT_COMPLETED,因此我们只需要在自己的应用中接收这个广播,然后启动APP即可. 2.编写接收器 既然是接收广播,必然是要用广播接收器,因此新建一个继承自广播BroadcastReceiver的类来专门接收上

android 安卓 listview 支持下拉刷新 上拉加载更多

[1]重写listView import java.text.SimpleDateFormat; import java.util.Date; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewGrou

Android 设置ListView不可滚动 及在ScrollView中不可滚动的设置

http://m.blog.csdn.net/blog/yusewuhen/43706169 转载请注明出处: http://blog.csdn.net/androiddevelop/article/details/38815493 希望得到的效果是ListView不能滚动,但是最大的问题在与ListView Item还必有点击事件,如果不需要点击事件那就简单了,直接设置ListView.setEnable(false); 如果还需要点击事件,滚动与点击都是在ListView Touch处理机制

13、Android之ListView学习&#183;

1.XML文件中添加ListView (1)XML布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_