亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

android中如何實現listview

發布時間:2021-08-11 10:31:06 來源:億速云 閱讀:151 作者:小新 欄目:移動開發

這篇文章主要介紹了android中如何實現listview,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

目錄結構:

android中如何實現listview

MainActivity2

package com.example1.listviewpracticvce;
/* 
 * 本activity實現的功能: 
 * 將數據庫中的數據用listview顯示出來 
 */
import com.example1.listviewdao.PersonDAO;
import 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

感謝你能夠認真閱讀完這篇文章,希望小編分享的“android中如何實現listview”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

辰溪县| 长顺县| 泽普县| 咸宁市| 宕昌县| 女性| 合川市| 阳谷县| 阿鲁科尔沁旗| 高清| 大石桥市| 静宁县| 寿宁县| 徐水县| 广汉市| 惠安县| 永兴县| 大足县| 资兴市| 米脂县| 静乐县| 昔阳县| 五大连池市| 建阳市| 嵊州市| 壶关县| 历史| 大渡口区| 安义县| 报价| 获嘉县| 兴城市| 遂溪县| 灌云县| 伽师县| 沙洋县| 安平县| 仙居县| 蓝田县| 社会| 吉林市|