结果图:
步骤:
1.向数据库中插入数据
2.从数据库中取出数据放在ArrayList中;
3.将ArrayList中的数据显示在ListView中;
布局文件:
activity_main.xml
<RelativeLayout 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="com.example.android04.MainActivity" >
<ListView
android:id="@+id/listView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ListView>
</RelativeLayout>
listitem_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="名字"
android:textSize="25sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:orientation="vertical" >
<TextView
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="号码"
/>
<TextView
android:id="@+id/tv_salary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="工资"
/>
</LinearLayout>
</RelativeLayout>
Java文件:
Person.java
package com.example.cn;
public class Person {
private String _id;
private String name;
private String phone;
private String salary;
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 getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getSalary() {
return salary;
}
public void setSalary(String salary) {
this.salary = salary;
}
@Override
public String toString() {
return name + ", " + phone + ", " + salary;
}
public Person(String _id, String name, String phone, String salary) {
super();
this._id = _id;
this.name = name;
this.phone = phone;
this.salary = salary;
}
}
MyOpenHelper.java
package com.example.android04;
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, "person.db", null, 1);
// TODO Auto-generated constructor stub
System.out.println("MyOpenHelper");
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
//创建表
db.execSQL("create table person(_id integer primary key autoincrement, name char(10), salary char(20), phone integer(20) )");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
MainActivity.java
package com.example.android04;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.drawable.LayerDrawable;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import com.example.cn.Person;
public class MainActivity extends Activity {
List<Person> personList;
MyOpenHelper mOpenHelper;
SQLiteDatabase db;
MyAdapter myAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lv = (ListView) findViewById(R.id.listView);
personList = new ArrayList<Person>();
// 创建MyOpenHelper实例
mOpenHelper = new MyOpenHelper(this);
// 得到数据库
db = mOpenHelper.getWritableDatabase();
// 插入数据
Insert();
// 查询数据
Query();
// 创建MyAdapter实例
myAdapter = new MyAdapter(this);
// 向listview中添加Adapter
lv.setAdapter(myAdapter);
}
// 创建MyAdapter继承BaseAdapter
class MyAdapter extends BaseAdapter {
private Context context;
private LayoutInflater inflater;
public MyAdapter(Context context) {
this.context = context;
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return personList.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 从personList取出Person
Person p = personList.get(position);
ViewHolder viewHolder = null;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = inflater.inflate(R.layout.listitem_layout, null);
viewHolder.txt_name = (TextView) convertView
.findViewById(R.id.tv_name);
viewHolder.txt_phone = (TextView) convertView
.findViewById(R.id.tv_phone);
viewHolder.txt_salary = (TextView) convertView
.findViewById(R.id.tv_salary);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
//向TextView中插入数据
viewHolder.txt_name.setText(p.getName());
viewHolder.txt_phone.setText(p.getPhone());
viewHolder.txt_salary.setText(p.getSalary());
return convertView;
}
}
class ViewHolder {
private TextView txt_name;
private TextView txt_phone;
private TextView txt_salary;
}
// 插入数据
public void Insert() {
for (int i = 0; i < 100; i++) {
ContentValues values = new ContentValues();
values.put("name", "张三" + i);
values.put("salary", "123" + i + i);
values.put("phone", "151" + i + i);
db.insert("person", null, values);
}
}
// 查询数据
public void Query() {
Cursor cursor = db.query("person", null, null, null, null, null, null);
while (cursor.moveToNext()) {
String _id = cursor.getString(0);
String name = cursor.getString(1);
String salary = cursor.getString(2);
String phone = cursor.getString(3);
Person person = new Person(_id, name, phone, salary);
personList.add(person);
}
}
}