阅读更多

--------------------------------------------AndroidManifest.xml----------------------------------

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.ch20"

    android:versionCode="1"

    android:versionName="1.0" >

    <uses-sdk

        android:minSdkVersion="10"

        android:targetSdkVersion="15" />

    <application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name=".ListViewActivity"

            android:label="@string/title_activity_main" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            intent-filter>

        activity>

    application>

manifest>

--------------------------------------------Layout activity_main.xml-----------------------------

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/LinearLayout1"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >

    <Button

        android:id="@+id/add_id"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="添加数据"/>

      <Button

        android:id="@+id/delete_id"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="删除数据"/>

        <Button

        android:id="@+id/edit_id"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="修改数据"/>

          <Button

        android:id="@+id/qyery_id"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="查询数据"/>

          

      <ListView 

          android:id="@+id/show_result"

          android:layout_width="fill_parent"

          android:layout_height="wrap_content">

      ListView>

LinearLayout>

--------------------------------------------Layout list_item.xml----------------------------------

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/LinearLayout1"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="horizontal" >

    <TextView

        android:id="@+id/view_id"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="id....." />

    

        <TextView

        android:id="@+id/view_name"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="name....." />

LinearLayout>

--------------------------------------------数据库工具类 DBHelper.java---------------------------

package com.ch20;

import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

/**

 * 

 * 项目名称:com.ch20    

 * 类名称:DBHelper    

 * 类描述:数据库操作工具类  

 * 创建人:方勇   

 * 创建时间:2012-12-4 上午8:50:40   

 * Copyright (c) 方勇-版权所有

 */

public class DBHelper {

/* DDL,定义数据结构 */

private DataBaseHelper dbHelper;

/* DML,数据库操作 */

private SQLiteDatabase db;

/* 数据库名 */

private final static String DATABASE_NAME = "a07.db3";

/* 版本号 */

private final static int DATABASE_VERSION = 1;

/* 上下文 */

private Context mcontext;

public DBHelper(Context mcontext) {

super();

this.mcontext = mcontext;

}

/* 静态内部类,针对DDL */

private static class DataBaseHelper extends SQLiteOpenHelper {

public DataBaseHelper(Context context) {

super(context, DATABASE_NAMEnullDATABASE_VERSION);

}

/* 创建表结构 */

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL("create table if not exists stu(id integer primary key,name text)");

db.execSQL("insert into stu values(1,'a1')");

db.execSQL("insert into stu values(2,'a2')");

}

/* 针对数据库升级 */

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}

/* 打开数据库,如果已经打开就使用,否则创建 */

public DBHelper open() {

dbHelper = new DataBaseHelper(mcontext);

db = dbHelper.getWritableDatabase();

return this;

}

/* 关闭数据库 */

public void close() {

db.close();// 先关DML

dbHelper.close();// DDL

}

/* 插入 */

public long insert(String tableName, ContentValues values) {

return 0;

}

/**

 * 

 * 更新

 *  

 * @param tableName   表名

 * @param whereClause 条件

 * @param whereArgs   条件值

 * @param values      更新值

 * @return 更新的条数

 *

 */

public long update(String tableName, String whereClause, String[] whereArgs, ContentValues values) {

return db.update(tableName, values, whereClause, whereArgs);

}

/* 删除 */

public boolean delete(String tableName, String whereClause, String[] whereArgs) {

return db.delete(tableName, whereClause, whereArgs) > 0;

}

/**

 * 

 * 查询,多条记录

 *  

 * @param tableName     表名

 * @param columns       列名

 * @param selection     条件

 * @param selectionArgs 条件值

 * @param groupBy       分组

 * @param having        过滤

 * @param orderBy       排序

 * @param limit         分页(2,3),从第二条记录开始,向下取三条记录

 * @return 动态游标

 *

 */

public Cursor findList(String tableName, String[] columns, String selection, String[] selectionArgs, String groupBy,

String having, String orderBy, String limit) {

return db.query(tableName, columns, selection, selectionArgs, groupBy, having, orderBy, limit);

}

/**

 * 

 * 精确查询,返回一条数据

 *  

 * @param tableName     表名

 * @param columns       列名

 * @param selection     条件

 * @param selectionArgs 条件值

 * @param groupBy       分组

 * @param having        过滤

 * @param orderBy       排序

 * @param limit         分页(2,3),从第二条记录开始,向下取三条记录

 * @return 动态游标

 *

 */

public Cursor findInfo(String tableName, String[] columns, String selection, String[] selectionArgs, String groupBy,

String having, String orderBy, String limit) {

Cursor cursor = db.query(tableName, columns, selection, selectionArgs, groupBy, having, orderBy, limit);

while (cursor.moveToNext()) {

cursor.moveToFirst();

}

return cursor;

}

/* 执行sql方法 */

public void executeSql(String sql) {

db.execSQL(sql);

}

}

--------------------------------------------Activity ListViewActivity.java-------------------------

package com.ch20;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import android.app.Activity;

import android.database.Cursor;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.ListView;

import android.widget.SimpleAdapter;

/**

 * 

 * 项目名称:com.ch20    

 * 类名称:ListViewActivity    

 * 类描述: CRUD

 * 创建人:方勇   

 * 创建时间:2012-12-4 上午9:37:39   

 * Copyright (c) 方勇-版权所有

 */

public class ListViewActivity extends Activity implements OnClickListener {

private ListView lisView;

private Button addBtndeleteBtneditBtnqueryBtn;

private SimpleAdapter simpleAdapter;

private DBHelper dbHelper;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findViews();

setListeners();

dbHelper = new DBHelper(this);

init();

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.add_id:

break;

case R.id.delete_id:

break;

case R.id.edit_id:

break;

case R.id.qyery_id:

break;

}

}

/* 实例化UI */

private void findViews() {

addBtn = (Button) findViewById(R.id.add_id);

deleteBtn = (Button) findViewById(R.id.delete_id);

editBtn = (Button) findViewById(R.id.edit_id);

queryBtn = (Button) findViewById(R.id.qyery_id);

lisView = (ListView) findViewById(R.id.show_result);

}

/* 设置监听 */

private void setListeners() {

addBtn.setOnClickListener(this);

deleteBtn.setOnClickListener(this);

editBtn.setOnClickListener(this);

queryBtn.setOnClickListener(this);

}

/* 初始化数据 */

private void init() {

simpleAdapter = new SimpleAdapter(this, getData(), R.layout.list_itemnew String[] { "id""name" }, new int[] {

R.id.view_id, R.id.view_name });

lisView.setAdapter(simpleAdapter);

}

/* 获取数据库集合数据 */

private List> getData() {

dbHelper.open();

Cursor cursor = dbHelper.findList("stu"nullnullnullnullnullnullnull);

List list = cursor2List(cursor);

dbHelper.close();

return list;

}

/* 游标转换为集合 */

private List> cursor2List(Cursor cursor) {

List> list = new ArrayList>();

/* 有记录 */

while (cursor.moveToNext()) {

HashMap map = new HashMap();

int id = cursor.getInt(cursor.getColumnIndex("id"));

String name = cursor.getString(cursor.getColumnIndex("name"));

map.put("id", id);

map.put("name", name);

list.add(map);

}

return list;

}

}

--------------------------------------------效果----------------------------------------------------

  • 大小: 88.9 KB
  • com.ch20.rar (344.1 KB)
  • 下载次数: 28
  • 查看图片附件

更多相关文章

  1. Android:SQLiteOpenHelper
  2. ch020 Android(安卓)SQLite3(第一部分)
  3. Android(安卓)Jetpack 之 LiveData
  4. Android摄像头视频帧数据测试代码
  5. Android使用HttpURLConnection上传文件
  6. Android_在线视频播放器
  7. HttpURLConnection和HttpClient使用
  8. Android(安卓)通信录中的联系人操作
  9. android 特效资源

随机推荐

  1. Fragment与Activity之间数据交互(Kotlin)
  2. android获取SD卡的状态
  3. Android(安卓)L Camera2 API 使用实例程
  4. Android的Handler用法(定时)
  5. android 网络广播 类似QQ动态检查网络
  6. Monkey测试结果解析(二)
  7. android canvas的画线和画字的区别
  8. android -- notification使用(转)
  9. Android(安卓)API 中文(76)――AdapterView
  10. 32位机器Ubuntu系统编译android Froyo注