Android-使用ListView把SQLite中的数据显示至屏幕

来源:互联网 发布:数据结构与算法的关系 编辑:程序博客网 时间:2024/06/05 04:44

结果图:



步骤:

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;}@Overridepublic 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 stubSystem.out.println("MyOpenHelper");}@Overridepublic 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) )");}@Overridepublic 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;@Overrideprotected 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中添加Adapterlv.setAdapter(myAdapter);}// 创建MyAdapter继承BaseAdapterclass MyAdapter extends BaseAdapter {private Context context;private LayoutInflater inflater;public MyAdapter(Context context) {this.context = context;inflater = LayoutInflater.from(context);}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn personList.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn null;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// 从personList取出PersonPerson 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);}}}








0 1
原创粉丝点击