ListVIEw与GrIDVIEw是AndroID开发中的常用控件,它们和Adapter配合使用能够实现很多界面效果。下面分别以实例说明ListVIEw、GrIDVIEw的用法。
1.ListVIEw的AndroID开发实例
ListVIEw 是androID开发中最常用的控件之一,一般构成列表包括三个元素,ListVIEw:用来展示列表的视图、Adapter:数据与视图连接的桥梁、Data:具体的数据包括字符串 、图片或者控件。
适配器一般有以下几种类型:
ArrayAdapter:AndroID中最简单的一种适配器,专门用于列表控件。只显示一行数据。
SimpleAdapter:此适配器有最好的扩充性,可以自定义出各种效果。经常使用静态数据填充列表。
CursorAdapter:通过游标向列表提供数据。
ResourceCursorAdapter:这个适配器扩展了CursorAdapter,知道如何从资源创建视图。
SimpleCursorAdapter:这个适配器扩展了ResourceCursorAdapter,从游标中得列创建 TextVIEw/ImageVIEw视图。下面获取通讯录的示例:
XML/HTML代码
<?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>
Java代码
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); 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,ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + Long.toString(ID),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的AndroID开发实例
GrIDVIEw 网格视图,用于显示多行多列。直接上示例:
XML/HTML代码
<?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/HTML代码<?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>
Java代码
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,long ID) { Toast toast=Toast.makeText(getApplicationContext(),"你选择了"+(position+1)+"号图片",1); toast.setGravity(Gravity.BottOM,0); toast.show(); } }); } }
看了这两个AndroID开发实例,相信大家对ListVIEw、GrIDVIEw的使用有了一定掌握了。大家还可以使用它们和Adapter实现更多的功能试试。
以上就是对AndroID ListVIEw 和GrIDVIEw 的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!
总结以上是内存溢出为你收集整理的Android开发之ListView、GridView 详解及示例代码全部内容,希望文章能够帮你解决Android开发之ListView、GridView 详解及示例代码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)