标签:
下面是一个LinearLayout,里面的内容超级简单,就是一个ListView
<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" tools:context=".MainActivity" > <ListView android:id="@+id/Lv" android:layout_width="fill_parent" android:layout_height="fill_parent" > </ListView> </LinearLayout>
package com.neusoft.ListView.model; public class Person { private String _id; private String name; private String salary; private String phone; public Person(String _id, String name, String salary, String phone) { super(); this._id = _id; this.name = name; this.salary = salary; this.phone = phone; } @Override public String toString() { return _id + "," + name + "," + salary+ "," + phone; } public String get_id() { return _id; } public void set_id(String _id) { this._id = _id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSalary() { return salary; } public void setSalary(String salary) { this.salary = salary; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } }下面的这个MyOpenHelper类就是老套路了,大家都知道。他是为了创建数据库和升级数据库等等对数据库的操作的类
package com.neusoft.ListView; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class MyOpenHelper extends SQLiteOpenHelper { public MyOpenHelper(Context context) { super(context, "people.db", null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table person(_id integer primary key autoincrement,name char(20),salary char(20),phone char(20))"); } @Override public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { System.out.print("数据库升级了"); } }
package com.neusoft.ListView; import java.util.ArrayList; import java.util.List; import java.util.zip.Inflater; import android.os.Bundle; import android.R.integer; import android.app.Activity; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import com.neusoft.ListView.model.*; public class MainActivity extends Activity { private ListView Lv; List<Person> personList;//创建一个List集合,将所有数据库中每个person加入到此集合中 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //insert(); //从数据库中取出数据 personList=new ArrayList<Person>(); MyOpenHelper oh=new MyOpenHelper(this); SQLiteDatabase db=oh.getWritableDatabase(); Cursor cursor=db.query("person",null, null, null, null, null,null); while(cursor.moveToNext()) { //循环取出每个person的值 String _id=cursor.getString(cursor.getColumnIndex("_id")); String name=cursor.getString(cursor.getColumnIndex("name")); String salary=cursor.getString(cursor.getColumnIndex("salary")); String phone=cursor.getString(cursor.getColumnIndex("phone")); Person p=new Person(_id, name, salary, phone); personList.add(p);//将值加入到集合中 } Lv=(ListView) findViewById(R.id.Lv); //将数据显示到屏幕 Lv.setAdapter(new MyAdapter()); } //创建一个内部类MyAdapter,适配器,就是将数据显示到屏幕的工具。 class MyAdapter extends BaseAdapter { @Override public int getCount() { return personList.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public View getView(int arg0, View arg1, ViewGroup arg2) { Person p=personList.get(arg0); //第一种写法 // View view=View.inflate(MainActivity.this,R.layout.item_activity, null); //第二种写法 // LayoutInflater inflater=LayoutInflater.from(MainActivity.this); // View view=inflater.inflate(R.layout.item_activity, null); //第三种写法 // LayoutInflater inflater2=(LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); // View view2=inflater2.inflate(R.layout.item_activity, null); //ListView优化 View view=null; if(arg1==null)//这里是ListView的优化,有了这就话话后,我们就可以把用过了的存入缓存,避免浪费资源 { view=View.inflate(MainActivity.this, R.layout.item_activity, null); } else { view=arg1; } TextView tv_name=(TextView) view.findViewById(R.id.tv_name); tv_name.setText(p.getName()); TextView tv_salary=(TextView) view.findViewById(R.id.tv_salary); tv_salary.setText(p.getSalary()); TextView tv_phone=(TextView) view.findViewById(R.id.tv_phone); tv_phone.setText(p.getPhone()); return view; } } //刚开始插入的数据 public void insert() { MyOpenHelper oh=new MyOpenHelper(this); SQLiteDatabase db=oh.getWritableDatabase(); for(int i=0;i<100;i++) { ContentValues values=new ContentValues(); values.put("name", "张宇翔"+i); values.put("salary", "1500"+i); values.put("phone","13408"+i); db.insert("person", null, values); } } }
标签:
原文地址:http://blog.csdn.net/zyx520ytt/article/details/51347586