`
玩野大人
  • 浏览: 14300 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

由SimpleCursorAdapter继承/定制出来的Adapter

阅读更多
package com.CursorAdapterTest;

import static com.db.MyOpenHelper.*;

import com.db.MyOpenHelper;
import android.app.Activity;
import android.content.ContentValues;
//...
//...
//省略部分代码
package com.CursorAdapterTest;
import android.widget.TextView;

public class CursorAdapterTest extends Activity {

	/** Called when the activity is first created. */
	MyOpenHelper                   				 myHelper ;		       //声明MyOpenHelper对象
	int []                         				 testId ;			   //声明用于存放联系人id的数组
	String []                      				 testName ;		       //声明用于存放联系人姓名的数组
	String []                      				 testPhone ;	       //声明用于存放联系人电话的数组
	ListView                       			     lv;				   //声明ListView对象
	private static  SQLiteDatabase db          = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //得到ListView的布局
        lv = (ListView)findViewById(R.id.lv);

        //打开数据库
        myHelper = new MyOpenHelper(this, DB_NAME);
        db = myHelper.getWritableDatabase();
        /*ContentValues values = new ContentValues();

        for(int i=0;i<100;i++){
        	values.put(NAME,"A");
        	values.put(PHONE,1234567+i);
        	db.insert(TABLE_NAME, null, values);
        }*/
        //得到数据库的cursor
        Cursor c = db.query(TABLE_NAME, null, null, null, null, null, ID);
        startManagingCursor(c);

        //实例化adapter
        Adapter adapter = new Adapter(this,
        		R.layout.listitem,
        		c,
        		new String[]{ID,NAME,PHONE},
        		new int[]{R.id.list_Id,R.id.list_Name,R.id.list_Phone});
        //绑定adapter
        lv.setAdapter(adapter);
    }
    public class Adapter extends SimpleCursorAdapter {

    	private LayoutInflater mInflater;

    	public Adapter (Context context, int layout, Cursor c, String[] from, int[] to) {
    		        super(context, layout, c, from, to);
    		    }

		@Override
    	public void bindView(View view, Context context, Cursor cursor) {
			//得到每一个item的布局文件
    		LinearLayout ll = null;
    		if (view == null) {
    			ll = (LinearLayout) mInflater.inflate(R.layout.listitem,null);
    		} else {
    			ll = (LinearLayout)view;
    		}

    		//通过cursor得到每一个字段的ColumnIndex
    		int idCol = cursor.getColumnIndex(ID);
    		int nameCol = cursor.getColumnIndex(NAME);
    		int phoneCol = cursor.getColumnIndex(PHONE);

    		int nCount = cursor.getPosition();
    		//int nCount = Integer.valueOf(cursor.getString(idCol));

    		//得到每一个数据控件
    		ImageView iv_TView = (ImageView)ll.findViewById(R.id.list_Iv);
        	TextView id_TV = (TextView)ll.findViewById(R.id.list_Id);
        	TextView name_TV = (TextView)ll.findViewById(R.id.list_Name);
        	TextView phone_TV = (TextView)ll.findViewById(R.id.list_Phone);

        	//设置每一项数据内容
        	if( nCount % 2 == 0){
        		iv_TView.setImageDrawable(getResources().getDrawable(R.drawable.r));
        	} else {
        		iv_TView.setImageDrawable(getResources().getDrawable(R.drawable.b));
        	}
        	id_TV.setText(cursor.getString(idCol));
        	name_TV.setText(cursor.getString(nameCol));
        	phone_TV.setText(cursor.getString(phoneCol));
    	}
    }
}

<!--?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">
	<listview android:id="@+id/lv" android:layout_width="fill_parent" android:layout_height="fill_parent" android:dividerheight="1px" android:cachecolorhint="#00000000" android:smoothscrollbar="true">
	</listview>
</linearlayout>

<!--?xml version="1.0" encoding="utf-8"?-->
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content">
		<imageview android:id="@+id/list_Iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical">
		<linearlayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1.0">
			<textview android:id="@+id/list_Id" android:layout_width="wrap_content" android:layout_height="wrap_content">
			<textview android:id="@+id/list_Name" android:layout_width="wrap_content" android:layout_height="wrap_content">
			<textview android:id="@+id/list_Phone" android:layout_width="wrap_content" android:layout_height="wrap_content">
		</textview></textview></textview></linearlayout>
</imageview></linearlayout>
  • 大小: 40.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics