您的位置:首页 > 其它

海量数据处理常用思路和方法

2012-03-13 13:11 253 查看
在许多时候我们需要将数据库表中的数据显示在ListView等组件中,虽然可以直接使用Adapter对象
做处理,但是工作量会非常大。为此,Android SDK提供了一个专用于数据绑定的了SimpleCursorAdapter
SimpleCursorAdapter与SimpleAdapter用法相似,从其的构造方法就可以看出来:

public SimpleCursorAdapter(Context context,int layout,Cursor c,String[] from,int[] to);
可以看出SimpleCursorAdapter类的构造方法只是将SimpleAdapter构造方法里面的List对象换成了
Cursor对象。下面通过一个例子程序演示器用法:
activity_main.xml
<LinearLayout 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_parent"     android:paddingBottom="@dimen/activity_vertical_margin"     android:paddingLeft="@dimen/activity_horizontal_margin"     android:paddingRight="@dimen/activity_horizontal_margin"     android:paddingTop="@dimen/activity_vertical_margin"     tools:context=".MainActivity"     android:orientation="vertical" >      <TextView         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="联系人列表" />     <ListView          android:id="@+id/contract_list"         android:layout_height="wrap_content"         android:layout_width="fill_parent"         >              </ListView>  </LinearLayout>
ListView自定义的布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical" >     <LinearLayout          android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:orientation="horizontal">     <ImageView          android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:src=\'#\'" /talk"/>     <TextView          android:textSize="18sp"         android:id="@+id/name"         android:layout_width="wrap_content"         android:layout_height="wrap_content"/>     <TextView          android:id="@+id/email"         android:layout_width="wrap_content"         android:layout_height="wrap_content"/>     </LinearLayout> </LinearLayout>
MainActivity.java文件:
package com.kiritor;  import android.app.Activity; import android.database.Cursor; import android.os.Bundle; import android.provider.Contacts.People; import android.view.Menu; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.SimpleCursorAdapter;  public class MainActivity extends Activity {  	private ListView listView = null; 	@Override 	protected void onCreate(Bundle savedInstanceState) { 		super.onCreate(savedInstanceState); 		setContentView(R.layout.activity_main); 		listView = (ListView) findViewById(R.id.contract_list); 		Cursor c=getContentResolver().query(People.CONTENT_URI,    			       null, null, null, null);          			        startManagingCursor(c);    			        @SuppressWarnings("deprecation") 					ListAdapter adapter = new SimpleCursorAdapter(this,     			                 R.layout.contract_list,    			                 c,     			                 new String[] {People.NAME,People.PRIMARY_EMAIL_ID} ,    			                 new int[] {R.id.name,R.id.email});     			        listView.setAdapter(adapter);    	}  	@Override 	public boolean onCreateOptionsMenu(Menu menu) { 		// Inflate the menu; this adds items to the action bar if it is present. 		getMenuInflater().inflate(R.menu.main, menu); 		return true; 	}  }
需要说明的是,该程序能够得到想象中的效果首先必须添加联系人(这里我只添加了一个)
其次,必须在配置文件中添加读取联系人的权限:
<uses-permission android:name="android.permission.READ_CONTACTS"/>
程序运行效果图:



本文出自 “kiritor” 博客,请务必保留此出处http://kiritor.blog.51cto.com/7400479/1226754
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: