`
xindrace
  • 浏览: 95680 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android入门第七篇之ListView (二)

 
阅读更多

本文来自http://blog.csdn.net/hellogv/

 

       Android入门第六篇之ListView (一) ,讲的是如何制作一个具有两行文本的 自定义控件 ,作为ListView的Item的使用方法。这篇接下来也是围绕ListView和Item,更加深入地介绍它们的用法。

       首先,先来看看本文代码运行的结果,本文的Item比上一篇中的Item多出左边的图标:


 


      main.xml的源代码,跟上一篇的一样,这里就不作解释了,直接贴出item.xml的代码,就是它实现ImageItem的UI:

<?xml version="1.0" encoding="utf-8"?>    
<RelativeLayout     
         android:layout_width="fill_parent"     
         xmlns:android="http://schemas.android.com/apk/res/android"     
         android:layout_height="wrap_content"     
         android:paddingBottom="4dip"     
         android:paddingLeft="12dip">    
         <ImageView     
               android:layout_width="wrap_content"     
               android:id="@+id/itemImage" android:layout_height="fill_parent">     
         </ImageView>    
         <TextView     
               android:text="TextView01"     
               android:layout_height="wrap_content"     
               android:layout_width="fill_parent"     
               android:id="@+id/itemTitle" android:layout_toRightOf="@+id/itemImage" android:textSize="20dip">    
         </TextView>    
         <TextView     
               android:text="TextView02"     
               android:layout_height="wrap_content"     
               android:layout_width="fill_parent"     
               android:id="@+id/itemText" android:layout_toRightOf="@+id/itemImage" android:layout_below="@+id/itemTitle">    
         </TextView>    
</RelativeLayout>   

 解释一下 item.xml的代码:这里使用了RelativeLayout布局,控件的关键的属性是:

itemTitle的属性 android:layout_toRightOf="@+id/itemImage" ,itemTitle在itemImage的右边;

itemText的属性 android:layout_toRightOf="@+id/itemImage",ItemText在itemImage的右边, android:layout_below="@+id/itemTitle", itemText 在 itemTitle的下面。

       最后,贴出JAVA的源代码,其中重点是LayoutInflate的用法。LayoutInflate的使用方法如下: 

  • LayoutInflater的作用是,把一个View的对象与XML布局文件关联并实例化。
  • View的对象实例化之后,可以通过findViewById()查找布局文件中的指定Id的组件。

package com.testListView;  
  
import android.app.Activity;  
import android.content.Context;  
import android.os.Bundle;  
import android.view.LayoutInflater;  
import android.view.View;  
import android.view.ViewGroup;  
import android.widget.BaseAdapter;  
import android.widget.ImageView;  
import android.widget.ListView;  
import android.widget.TextView;  
  
public class testListView extends Activity {  
    ListView listView;  
    String[] titles={"标题1","标题2","标题3","标题4"};  
    String[] texts={"文本内容A","文本内容B","文本内容C","文本内容D"};  
    int[] resIds={R.drawable.icon,R.drawable.icon,R.drawable.icon,R.drawable.icon};  
      
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        this.setTitle("BaseAdapter for ListView");  
        listView=(ListView)this.findViewById(R.id.listView1);  
        listView.setAdapter(new ListViewAdapter(titles,texts,resIds));  
    }  
  
    public class ListViewAdapter extends BaseAdapter {  
        View[] itemViews;  
  
        public ListViewAdapter(String[] itemTitles, String[] itemTexts,  
                int[] itemImageRes) {  
            itemViews = new View[itemTitles.length];  
  
            for (int i = 0; i < itemViews.length; i++) {  
                itemViews[i] = makeItemView(itemTitles[i], itemTexts[i],  
                        itemImageRes[i]);  
            }  
        }  
  
        public int getCount() {  
            return itemViews.length;  
        }  
  
        public View getItem(int position) {  
            return itemViews[position];  
        }  
  
        public long getItemId(int position) {  
            return position;  
        }  
  
        private View makeItemView(String strTitle, String strText, int resId) {  
            LayoutInflater inflater = (LayoutInflater) testListView.this  
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
  
            // 使用View的对象itemView与R.layout.item关联   
            View itemView = inflater.inflate(R.layout.item, null);  
  
            // 通过findViewById()方法实例R.layout.item内各组件   
            TextView title = (TextView) itemView.findViewById(R.id.itemTitle);  
            title.setText(strTitle);  
            TextView text = (TextView) itemView.findViewById(R.id.itemText);  
            text.setText(strText);  
            ImageView image = (ImageView) itemView.findViewById(R.id.itemImage);  
            image.setImageResource(resId);  
              
            return itemView;  
        }  
  
        public View getView(int position, View convertView, ViewGroup parent) {  
            if (convertView == null)  
                return itemViews[position];  
            return convertView;  
        }  
    }  
  
}  

 

 

 

分享到:
评论

相关推荐

    Android入门到精通详解(完整书签)

    #### 第二篇:Android应用程序的概述和框架 ##### 第3章:Android应用层程序的开发方式 - **应用程序开发的结构**:Android应用程序通常由多个组件构成,包括Activity、Service、BroadcastReceiver和...

    android listview demo 下拉加载更多

    在Android开发中,ListView是一种常用的组件,用于展示大量的数据列表,比如联系人列表、消息列表等。本示例“android listview demo 下拉加载更多”是针对ListView的一个增强功能,即下拉刷新和上拉加载更多的实现...

    Android入门经典例子合集

    这个"Android入门经典例子合集"正是为了帮助初学者快速理解和掌握Android应用开发的基础知识而精心整理的资源。以下是一些核心知识点,涵盖从环境搭建到功能实现的全过程: 1. **Android Studio安装与设置**:...

    android开发从入门到精通光盘源代码第二章

    "android开发从入门到精通光盘源代码第二章"提供的资源正是为了帮助初学者系统学习并深入理解这一平台的编程技术。本章节可能涵盖了Android应用的基础架构、UI设计、事件处理、数据存储等多个方面,通过实际的源代码...

    《Google Android开发入门与实战》

    第7章 良好的学习开端——Android基本组件介绍之用好列表,做好程序——列表(ListView)介绍与实例 第7章 良好的学习开端——Android基本组件介绍之友好地互动交流——对话框(Dialog)介绍与实例-1 第7章 良好的学习...

    Android编程入门很简单.(清华出版.王勇).part1

    第7章设计界面布局 7.1创建界面 7.1.1 使用xml资源创建布局 7.1.2使用代码创建布局 7.2使用布局类 7.2.1使用绝对布局 7.2.2使用线性布局 7.2.3使用框架布局 7.2.4使用表格布局 7.2.5使用关系布局 7.3使用其他布局...

    Android代码-通过httpclient获取到JSON数据展示到ListView.zip

    7. **数据绑定**:在`getView()`方法内,将解析出的JSON数据绑定到ListView的各个子项(比如TextView)上,完成数据展示。 8. **异常处理**:在处理网络请求时,应捕获可能抛出的异常,如`JSONException`(解析错误...

    Android入门到精通源代码.

    第7章 Android中的核心Intent 7.1 Intent的作用 7.1.1 多Activity的Android应用 7.1.2 Activity之间的消息传递 7.2 Intent的分类 7.2.1 Action Intent 7.2.2 Broadcast Intent 7.3 解析Intent的实现 7.3.1 Intent ...

    Android课件 入门学习

    【Android入门学习】系列课程是针对初学者设计的,旨在帮助你快速掌握Android应用开发的基础知识。本课程涵盖了Android UI设计、数据管理以及组件交互等多个关键领域,通过一系列PPT学习资料,让你逐步建立起Android...

    Android入门学习笔记

    Android入门学习笔记主要涵盖了Android开发的基础知识,包括平台概述、环境搭建、基本概念以及实际应用开发的各个方面。这里我们将深入探讨这些关键知识点。 一、Android平台概述 Android是由Google主导开发的一款...

    Android第二行代码(郭霖全书源代码)

    《Android第二行代码》是郭霖撰写的一本深入浅出的Android编程入门书籍,它旨在帮助初学者快速理解和掌握Android应用开发。这本书的全书源代码提供了丰富的实践示例,帮助读者通过动手实践来巩固理论知识。以下是...

    传智播客_Andorid教程_20天从零到精通Android开发视频_第05天

    传智播客_Andorid教程_20...7、listview入门及优化 8、listview展示复杂条目 9、LayoutInflater的三种方法 10、ArrayAdapter和SimpleAdapter的使用 11、通过listview展示数据库数据 获取更多教程资料添加qq 2369773854

    Android入门教程

    《Android入门教程》 在数字化世界中,Android操作系统已经成为移动设备的主流平台,吸引着无数开发者投身其中。本文档作为中文版的Android程序员入门指南,旨在帮助初学者快速熟悉并掌握Android开发的基本流程和...

    Android编程入门很简单.(清华出版.王勇).part2

    第7章设计界面布局 7.1创建界面 7.1.1 使用xml资源创建布局 7.1.2使用代码创建布局 7.2使用布局类 7.2.1使用绝对布局 7.2.2使用线性布局 7.2.3使用框架布局 7.2.4使用表格布局 7.2.5使用关系布局 7.3使用其他布局...

Global site tag (gtag.js) - Google Analytics