国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

android listview進階實例分享

2019-10-22 18:17:26
字體:
來源:轉載
供稿:網友

上一篇android listview初步學習實例代碼分享了一個listview初級實例,本文我們看看一個進階實例。

目錄結構:

android,listview實例,橫向listview

MainActivity2

package com.example1.listviewpracticvce;/*  * 本activity實現的功能:  * 將數據庫中的數據用listview顯示出來  */import com.example1.listviewdao.PersonDAO;import android/293877.html">android.app.Activity;import android.content.Context;import android.database.Cursor;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ImageView;import android.widget.ListView;import android.widget.SimpleCursorAdapter;import android.widget.TextView;import android.widget.Toast;import android.widget.AdapterView.OnItemClickListener;import android.widget.SimpleCursorAdapter.ViewBinder;public class MainActivity2 extends Activity {	ListView lvPerson;	@Override 	    protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.person);		PersonDAO personDAO = new PersonDAO(this);		Cursor cursor = personDAO.getPersons();		//cursor類似一個指針 		lvPerson = (ListView) findViewById(R.id.lvPerson);		//SimpleCursorAdapter(context, layout,   c,   from,    to    ) 		//            listview的布局    cursor 需要顯示的列  在哪個控件中顯示 		//數組開頭的列必須是"_id" 		SimpleCursorAdapter adapter = new PersonAdapter(this, R.layout.person_item, cursor, 		          new String[]{ "_id", "pname", "pgender" }, 		          new int[]{ R.id.tvPid, R.id.tvPname, R.id.ivPgender });		//     SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.person_item, cursor,  		//     new String[]{ "_id", "pname", "pgender" }, //要顯示的列 		//     new int[]{ R.id.tvPid, R.id.tvPname, R.id.ivPgender });//顯示每行所用控件 		//為了將性別顯示為圖片,這里復寫了SimpleCursorAdapter這個類 		lvPerson.setAdapter(adapter);		lvPerson.setOnItemClickListener(new OnItemClickListener() 		      {			@Override 			        public void onItemClick(AdapterView<?> parent, View view, int position, long id) 			        {				Cursor cursor = (Cursor) parent.getItemAtPosition(position);				Toast.makeText(getApplicationContext(), cursor.getString(1), Toast.LENGTH_sHORT).show();			}		}		);	}}//利用源代碼定制 class PersonAdapter extends SimpleCursorAdapter   {	private Cursor mCursor;	protected int[] mFrom;	protected int[] mTo;	private ViewBinder mViewBinder;	public PersonAdapter(Context context, int layout, Cursor c, String[] from, int[] to) 	    {		super(context, layout, c, from, to);		mCursor = c;		mTo = to;		findColumns(from);	}	@Override 	    public void bindView(View view, Context context, Cursor cursor) 	    {		final ViewBinder binder = mViewBinder;		final int count = mTo.length;		final int[] from = mFrom;		final int[] to = mTo;		for (int i = 0; i < count; i++) 		      {			final View v = view.findViewById(to[i]);			if (v != null) 			        {				Boolean bound = false;				if (binder != null) 				          {					bound = binder.setViewValue(v, cursor, from[i]);				}				if (!bound) 				          {					String text = cursor.getString(from[i]);					if (text == null) 					            {						text = "";					}					if (v instanceof TextView) 					            {						setViewText((TextView) v, text);					} else if (v instanceof ImageView) 					            {						if (text.equals("男")) 						              {							setViewImage((ImageView) v, String.valueOf(R.drawable.boy));						} else 						              {							setViewImage((ImageView) v, String.valueOf(R.drawable.girl));						}					} else 					            {						throw new IllegalStateException(v.getClass().getName() + " is not a " + " view that can be bounds by this SimpleCursorAdapter");					}				}			}		}	}	private void findColumns(String[] from) 	    {		if (mCursor != null) 		      {			int i;			int count = from.length;			if (mFrom == null || mFrom.length != count) 			        {				mFrom = new int[count];			}			for (i = 0; i < count; i++) 			        {				mFrom[i] = mCursor.getColumnIndexOrThrow(from[i]);			}		} else 		      {			mFrom = null;		}	}}

DBOpenHelper

package com.example1.listviewdao;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class DBOpenHelper extends SQLiteOpenHelper {	private static final int VERSION = 1;	private static final String DBNAME = "data.db";	private static final String PERSON="t_person";	public DBOpenHelper(Context context) 	  {		super(context, DBNAME, null, VERSION);	}	@Override 	  public void onCreate(SQLiteDatabase db) 	  {		db.execSQL("create table "+PERSON+" (_id varchar(4) primary key,pname varchar(20),pgender varchar(2))");		db.execSQL("insert into t_person (_id, pname, pgender) values ('1001','張三','男')");		db.execSQL("insert into t_person (_id, pname, pgender) values ('1002','李四','男')");		db.execSQL("insert into t_person (_id, pname, pgender) values ('1003','王五','女')");		db.execSQL("insert into t_person (_id, pname, pgender) values ('1004','趙錢','男')");		db.execSQL("insert into t_person (_id, pname, pgender) values ('1005','孫李','女')");		db.execSQL("insert into t_person (_id, pname, pgender) values ('1006','周吳','男')");		db.execSQL("insert into t_person (_id, pname, pgender) values ('1007','鄭王','男')");		db.execSQL("insert into t_person (_id, pname, pgender) values ('1008','馮陳','男')");		db.execSQL("insert into t_person (_id, pname, pgender) values ('1009','褚衛','女')");		db.execSQL("insert into t_person (_id, pname, pgender) values ('1010','蔣沈','男')");		db.execSQL("insert into t_person (_id, pname, pgender) values ('1011','韓楊','男')");		db.execSQL("insert into t_person (_id, pname, pgender) values ('1012','朱秦','男')");		db.execSQL("insert into t_person (_id, pname, pgender) values ('1013','尤許','男')");	}	@Override 	  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 	  {	}}

Person

package com.example1.listviewdao;public class Person {	private String pid;	private String pname;	private String pgender;	public Person() 	  {		super();	}	public Person(String pid, String pname, String pgender) 	  {		super();		this.pid = pid;		this.pname = pname;		this.pgender = pgender;	}	public String getPid() 	  {		return pid;	}	public void setPid(String pid) 	  {		this.pid = pid;	}	public String getPname() 	  {		return pname;	}	public void setPname(String pname) 	  {		this.pname = pname;	}	public String getPgender() 	  {		return pgender;	}	public void setPgender(String pgender) 	  {		this.pgender = pgender;	}	@Override 	  public String toString() 	  {		return "pid=" + pid + ";pname=" + pname + ";pgender=" + pgender;	}}

PersonDAO

package com.example1.listviewdao;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;public class PersonDAO {	private DBOpenHelper helper;	private SQLiteDatabase db;	public PersonDAO(Context context) 	  {		helper = new DBOpenHelper(context);	}	public Cursor getPersons(int start, int count) 	  {		db = helper.getWritableDatabase();		Cursor cursor=db.query("t_person", new String[]{"_id","pname","pgender"}, null, null, null, null, "_id desc",start+","+count);		return cursor;	}	public Cursor getPersons() 	  {		db = helper.getWritableDatabase();		Cursor cursor=db.query("t_person", new String[]{"_id,pname,pgender"}, null, null, null, null, null);		return cursor;	}	public long getCount() 	  {		db = helper.getWritableDatabase();		Cursor cursor = db.rawQuery("select count(_id) from t_person", null);		if (cursor.moveToNext()) 		    {			return cursor.getlong(0);		}		return 0;	}}

person_item.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   android:orientation="horizontal"   android:layout_width="fill_parent"   android:layout_height="fill_parent"   >   <TextView      android:id="@+id/tvPid"     android:layout_width="70dp"      android:layout_height="50dp"      android:gravity="center"     android:textSize="15sp"     />   <TextView     android:id="@+id/tvPname"     android:layout_width="190dp"     android:layout_height="50dp"     android:gravity="center"     android:textSize="15sp"     />      <ImageView     android:id="@+id/ivPgender"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     />     <!--       <TextView     android:id="@+id/ivPgender"     android:layout_width="wrap_content"     android:layout_height="50dp"     android:gravity="center"     android:textSize="15sp"     />     -->     </LinearLayout> 

person.xml

<?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"   >   <LinearLayout     android:orientation="horizontal"     android:layout_width="fill_parent"     android:layout_height="wrap_content"     >     <TextView        android:layout_width="70dp"        android:layout_height="wrap_content"        android:gravity="center"       android:text="編號"       android:textSize="20sp"       android:textStyle="bold"       />     <TextView       android:layout_width="190dp"       android:layout_height="wrap_content"       android:gravity="center"       android:text="姓名"       android:textSize="20sp"       android:textStyle="bold"       />     <TextView       android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:text="性別"       android:textSize="20sp"       android:textStyle="bold"       />   </LinearLayout>   <ListView     android:id="@+id/lvPerson"     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:background="@drawable/bg"     android:scrollingCache="false"     android:divider="@drawable/line"     /> </LinearLayout> 

結果展示

android,listview實例,橫向listview

總結

以上就是本文關于android listview進階實例分享的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 方城县| 蓝山县| 西林县| 田东县| 开原市| 柞水县| 彭山县| 利川市| 西乡县| 天镇县| 乐安县| 南通市| 云霄县| 兴国县| 太原市| 金沙县| 郧西县| 苏尼特左旗| 积石山| 南乐县| 于田县| 高唐县| 香格里拉县| 华蓥市| 古浪县| 荥经县| 从化市| 罗平县| 巴塘县| 枣庄市| 永泰县| 泰来县| 平度市| 福建省| 邢台县| 岑巩县| 屯昌县| 叙永县| 奉贤区| 孟津县| 昭平县|