`
xindrace
  • 浏览: 97193 次
  • 性别: 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入门经典例子合集

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

    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中数据存储的方法,包括使用SharedPreferences进行轻量级的数据存储,利用应用内部存储机制,以及如何使用外部存储(例如SD卡)进行数据的读写。 “第八部分 数据库操作”部分则...

    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程序员入门(中文版)

    ### Android程序员入门(中文版) #### 一、什么是Android? - **定义与历史**:Android是一种基于Linux内核的操作系统,最初由Andy Rubin等人于2003年创立的Android公司开发,旨在为手持设备提供一种开放源码的平台...

    Android课件 入门学习

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

    Android程序员入门 中文版 pdf

    ### Android程序员入门知识点总结 #### 一、Android简介与历史 - **定义**: Android是一种基于Linux内核的开源操作系统,主要用于移动设备如智能手机和平板电脑。 - **发展历史**: - **起源**: 由Andy Rubin等人...

    Android入门手册-中文版

    根据给定的“Android入门手册-中文版”的文件信息,我们可以从中提炼出一系列与Android开发相关的知识点,这些知识点覆盖了从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使用其他布局...

    Android入门到精通详解

    ### Android入门到精通详解 #### 第一篇:Android系统结构和SDK使用 ##### 第1章:Android的系统介绍 **1.1 系统介绍** Android是由Google开发的一款基于Linux平台的开源操作系统,专为移动设备设计。它不仅包含...

    Android编程指南+程序员入门(中文版).pdf

    第七章:使用Intents和电话拨号盘 - **Intent机制**:探讨如何利用Intent在不同组件间传递数据和请求服务,实现应用间的交互与通信。 - **电话拨号盘集成**:展示如何在应用中集成电话拨号功能,使用户能直接从...

    android从入门到精通sl(实例源程序)

    ### Android从入门到精通SL(实例源程序) #### 一、Android基础知识 1. **Android系统简介** - Android是一个基于Linux内核的开源移动操作系统,由Google公司维护。 - 它支持多种设备,包括智能手机、平板电脑...

Global site tag (gtag.js) - Google Analytics