`
androidtoast
  • 浏览: 210386 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
38befa0e-3f74-3314-92d9-475c7fc3c19b
Android学习——入门...
浏览量:124522
社区版块
存档分类
最新评论

一,android开发经典实例系列-----ListView、GridView

阅读更多

 
 1,ListView 是android开发中最常用的控件之一,一般构成列表包括三个元素,ListView:用来展示列表的视图、Adapter:数据与视图连接的桥梁、Data:具体的数据包括 字符串 图片 或者控件。

     适配器一般有以下几种类型

     ArrayAdapter:Android中最简单的一种适配器,专门用于列表控件。只显示一行数据。

     SimpleAdapter:此适配器有最好的扩充性,可以自定义出各种效果。经常使用静态数据填充列表。

     CursorAdapter:通过游标向列表提供数据。

     ResourceCursorAdapter:这个适配器扩展了CursorAdapter,知道如何从资源创建视图。

     SimpleCursorAdapter:这个适配器扩展了ResourceCursorAdapter,从游标中得列创建 TextView/ImageView视图。下面获取通讯录的示例:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bg"
   
    >
   	<ListView 
   	android:id="@+id/contacts_list"
   	android:layout_width="fill_parent"
   	android:layout_height="fill_parent"
	>
	</ListView>
</LinearLayout>

 

package net.csdn.blog.androidtoast;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class MainActivity extends Activity {
	
	 ListView     mListView;
	 ArrayList<Map<String, String>> listData;
	     
    static final String NAME = "name";
	static final String NUMBER = "number";
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        getContacts();
    }

    /**
     * 获取联系人列表
     */
	private void getContacts() {
		mListView=(ListView) findViewById(R.id.contacts_list);
		listData = new ArrayList<Map<String, String>>();
		//获取数据库Cursor
		Cursor cur=getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
		startManagingCursor(cur);
		while (cur.moveToNext()) {
          Map<String, String> mp = new HashMap<String, String>();
          long id = cur.getLong(cur.getColumnIndex("_id"));
		  Cursor pcur = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
			                  null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + Long.toString(id), 
		                      null, null);
		          
			            // 处理多个号码的情况
		           String phoneNumbers = "";
		           while (pcur.moveToNext()) {
			               String strPhoneNumber = pcur.getString(pcur.getColumnIndex(
			                       ContactsContract.CommonDataKinds.Phone.NUMBER));
			              phoneNumbers += strPhoneNumber + ":";
			           }
			           phoneNumbers += "\n";
			           pcur.close();
			           
			           String name = cur.getString(cur.getColumnIndex("display_name"));
			           mp.put(NAME, name);
			           mp.put(NUMBER, phoneNumbers);
			           listData.add(mp);
			        }
		 cur.close();
		 
		// 建立一个适配器去查询数据
        ListAdapter adapter = new SimpleAdapter(this, listData, android.R.layout.simple_list_item_2,
               new String[]{NAME, NUMBER},
               new int[] {android.R.id.text1, android.R.id.text2});
        mListView.setAdapter(adapter);
		//为listView添加事件监听
		mListView.setOnItemSelectedListener(new ListView.OnItemSelectedListener(){

			@Override
			public void onItemSelected(AdapterView<?> parent, View view,
					int position, long id) {
				Toast.makeText(getApplicationContext(), "当前所在行为:"+Long.toString(parent.getSelectedItemId()+1), 1).show();
			}

			@Override
			public void onNothingSelected(AdapterView<?> parent) {
				// TODO Auto-generated method stub
				
			}
			
		});
	}
}

  

 2,GridView 网格视图,用于显示多行多列。直接上示例:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bg"
    >
	<GridView
		android:id="@+id/gridview"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:numColumns="3"/>
		
</LinearLayout>

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent" android:scrollbars="vertical">
	 <ImageView   
               android:layout_height="100dip"   
               android:id="@+id/ItemImage"   
               android:layout_width="80dip" 
               android:src="@drawable/png1" 
               android:layout_gravity="center_horizontal"/> 
                 
         <TextView   
               android:layout_width="wrap_content"   
               android:layout_height="wrap_content" 
               android:layout_gravity="center"  
               android:id="@+id/ItemText" />  
</LinearLayout>

 

package net.csdn.blog.androidtoast;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
	//定义图片整型数组
	private int[] mImages={
			R.drawable.png1,
			R.drawable.png2,
			R.drawable.png3,
			R.drawable.png4,
			R.drawable.png5,
			R.drawable.png6,
			R.drawable.png7,
			R.drawable.png8,
			R.drawable.png9

	};
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        //实例化GridView
        GridView mGridView=(GridView) findViewById(R.id.gridview);
        // 生成动态数组,并且传入数据
        ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();
        
        for (int i = 0; i < 9; i++) {
            HashMap<String, Object> map = new HashMap<String, Object>();
            map.put("ItemImage", mImages[i]);// 添加图像资源的ID
            map.put("ItemText", "NO." + String.valueOf(i+1));// 按序号做ItemText
            lstImageItem.add(map);
        }
        //构建一个适配器
        SimpleAdapter simple = new SimpleAdapter(this, lstImageItem,
                R.layout.gridviewitem,
                new String[] { "ItemImage", "ItemText" }, new int[] {
                        R.id.ItemImage, R.id.ItemText });
        mGridView.setAdapter(simple);
        //添加选择项监听事件
        mGridView.setOnItemClickListener(new GridView.OnItemClickListener(){

			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				Toast toast=Toast.makeText(getApplicationContext(), "你选择了"+(position+1)+"号图片", 1);
				toast.setGravity(Gravity.BOTTOM, 0, 0);
				toast.show();
			}
        	
        });
        
    }
}

 

 

 

  • 大小: 42.8 KB
  • 大小: 71.4 KB
  • 大小: 71.9 KB
分享到:
评论
2 楼 mm4409092 2012-05-05  
android listview综合使用示例_结合数据库操作和listitem单击长按等事件处理
http://blog.csdn.net/lk_blog/article/details/7537200
1 楼 linchixiong 2011-09-09  
学习啊~~~

相关推荐

    一,android开发经典实例系列-----ListView、GridView.doc

    一,android开发经典实例系列-----ListView、GridView

    android-ListView内嵌GridView

    android-ListView内嵌GridView

    Android开发+RecyclerView+瀑布流、ListView、GridView实例+UI组件展示:RecyclerV

    这个文件,名为“Android开发+RecyclerView+瀑布流、ListView、GridView实例+UI组件展示”,包含了使用HTML5技术制作的浪漫爱心表白动画。这个动画非常适合在情人节或特殊纪念日用作电子表白,让表达爱意的时刻更加...

    android开发资料大全

    Android游戏开发系列源码+CHM+书籍截图+目录】 Android developer guide中文翻译文档 Android开发开发技巧之 EditText 属性、 ProgressBar 各种样式大全 android用户界面之EditText教程实例汇 android用户界面之...

    android 适用于listview中girdview

    主要用于listview中的girdview,自动适配listview,GridView高度,适用于类似评论,朋友圈,QQ空间列表的功能

    Android开发之ListView、GridView 详解及示例代码

    ListView与GridView是Android开发中的常用控件,它们和Adapter配合使用能够实现很多界面效果。下面分别以实例说明ListView、GridView的用法。  1.ListView的Android开发实例  ListView 是android开发中最常用的...

    Android 中ScrollView嵌套GridView,ListView的实例

    Android 中ScrollView嵌套GridView,ListView的实例 在Android开发中,经常有一些UI需要进行固定style的动态布局,然而由于现在的UI都喜欢把一个界面拉的很长,所以我们很多情况下需要使用ScrollView来嵌套列表控件...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--android INSTALL_PARSE_FAILED_MANIFEST_MALFORMED |--android root下禁用组件 |--android 判断网络状态 |--android 对话框样式 |--android 开机启动 |--android 挪动dialog的位置 |--android 控制对话框位置 |--...

    android开发揭秘PDF

    第11 章Android游戏开发实例 11.1 手机游戏开发简介 11.2 游戏框架设计 11.3 地图设计 11.4 主角设计 11.5 图层管理器 11.6 游戏音效 11.7 游戏存档 11.8 小结 第四部分 高级篇 第12章 AndroidOpenGL开发 基础 12.1...

    Android应用开发揭秘pdf高清版

    它还以迭代的方式重现了各种常用的Android应用和经典Android游戏的开发全过程,既可以以它们为范例进行实战演练,又可以将它们直接应用到实际开发中去。 目录 -------------------------------------------------...

    Android代码-android-Stupid-Adapter

    支持listview,gridView, recyclerview, 的adapter, 开发者只需要关注 item View 和 数据的关系,业务逻辑.剩下的一切交给我 将viewholder,与 adapter分开,每个absListview 不需要创建一个对应的adapter 类, 只需要...

    android开发入门与实战(下)

    1.5 更上一层楼——加入Android开发社区 1.6 本章小结 第2章 工欲善其事 必先利其器——搭建Android开发环境 2.1 开发Android应用前的准备 2.1.1 Android开发系统要求 2.1.2 Android软件开发包 2.1.3 其他注意事项 ...

    GridView小例子_红桃GLF 的博客

    在手机首页显示的app应用图标都是以网格的形式展示的,所以今天就来学习一下GridView组件。列表分为单行和多行,如果是列表(单列多行形式)的使用ListView,如果是多行多列网状形式的优先使用GridView。

    Android开发资料合集-World版!

    方法一:(重写ListView) 144 方法二: 150 5.6、3D魔方 151 6、ANDROID UI 动画 160 6.1、四种2D动画 160 6.1.1、透明度控制动画效果 alpha 160 6.1.2、旋转动画效果 rotate 161 6.1.3、尺寸伸缩动画效果 scale ...

    Android开发案例驱动教程 配套代码

    《Android开发案例驱动教程》 配套代码。 注: 由于第12,13,14章代码太大,无法上传到一个包中。 这三节代码会放到其他压缩包中。 作者:关东升,赵志荣 Java或C++程序员转变成为Android程序员 采用案例驱动模式...

    《Google Android开发入门与实战》.pdf

     本书内容上涵盖了用android开发的大部分场景,从android基础介绍、环境搭建、sdk介绍、market使用,到应用剖析、组件介绍、实例演示等方面。从技术实现上,讲解了5个android平台下的完整综合实例及源代码分析,...

    Android七种layout布局实例(可直接运行)

    五种布局 framelayout linearlayout relativelayout tablelayout tablayout 两个控件 gridview listview实例代码,可直接运行

Global site tag (gtag.js) - Google Analytics