实验8 SQLite数据库操作

实验报告

课程名称

基于Android平台移动互联网开发

实验日期

2015.5.12

实验项目名称

 

实验8  SQLite数据库操作

 

实验地点

S30010

实验类型

□验证型    √设计型    □综合型

学    时

2

一、实验目的及要求(本实验所涉及并要求掌握的知识点)

【目的】

    设计一个个人通讯录,掌握Android平台下的数据库开发,该个人通讯录主要包括联系人列表和联系人详细信息等界面。

【要求】

程序主界面是通讯录的目录显示手机上联系人的名称。点击联系人的姓名可以显示联系人的详细信息。在按了MEMU键之后会弹出菜单栏。单击菜单栏上的按钮可以添加联系人和删除联系人

 

 

二、实验环境(本实验所使用的硬件设备和相关软件)

(1)PC机

(2)操作系统:Windows XP

(3)软件: Eclipse, JDK1.6,Android SDK,ADT

三、实验内容及步骤

(1)确定数据库的数据结构。本程序只要一张表,该表的内容及说明如下表所示

 

 

                                                                                                                                                     
   

字段名称

   
   

数据类型

   
   

说明

   
   

字段名称

   
   

数据类型

   
   

声明

   
   

_id

   
   

Integer

   
   

所插入记录的编号

   
   

name

   
   

varchar

   
   

联系人名称

   
   

phone

   
   

Varchar

   
   

联系人的固定电话

   
   

mobile

   
   

varchar

   
   

手机号码

   

 

   
   

Email

   
   

Varchar

   
   

联系人的邮箱的地址

   
   

post

   
   

varchar

   
   

联系人固话

   
   

addr

   
   

varchar

   
   

联系认的地址

   
   

comp

   
   

varchar

   
   

联系人所在地

   

 

(2) 在res/drawable-mdpi目录下拷入程序要用的图标

1)新建工程

 2)修改布局文件activity_main.xml

(3)定义字符串资源string.xml

                                                                     

(4)开发布局文件activity_main.xml用于显示联系人列表。

    

(5)layout目录下新建一个detail.xml,用于显示联系人详细信息,代码参考如下:

    

    

    

 

 

 

 

    

    

    

(3)开发数据库辅助类MyOpenHelper类,新建一个MyOpenHelper.java。其中的框架代码如下

    

    

 

(4)接下来便进入MainActivity端的开发,实现数据库增加、删除、修改记录等操作

(5)新建一个Activity名字叫DetailActivity.java,实现联系人详细信息显示功能。

 

四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图)

 

activity_main

<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="@drawable/kk"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="5dp"
        android:text="@string/title"
        android:textSize="28px" />

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="328dp"
        android:layout_weight="0.31" >
    </ListView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/add"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:layout_weight="1"
            android:text="@string/add" />

        <Button
            android:id="@+id/delete"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="@string/delete" />
    </LinearLayout>

</LinearLayout>

DeleteActivity

package com.example.tongxinlu;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;

public class DeleteActivity extends Activity {
    Button btnback;
    Intent it = new Intent();
    ListView listview;
    UserSQL usersql;
    SQLiteDatabase userdatabases;
    ArrayList<HashMap<String, Object>> userlist;
    String[] name = new String[100];
    Cursor cursor;
    SimpleAdapter sa;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.delete);
        btnback = (Button) findViewById(R.id.back);
        listview = (ListView) findViewById(R.id.listView2);
        usersql = new UserSQL(DeleteActivity.this, "user.db", null, 1);
        userdatabases = usersql.getReadableDatabase();
        userlist = new ArrayList<HashMap<String, Object>>();
        cursor = userdatabases.rawQuery("select * from userTable", null);
        cursor.moveToFirst();
        
        if (cursor.getCount() > 0) {
            for (int i = 0; i < cursor.getCount(); i++) {
                HashMap<String, Object> hashmap = new HashMap<String, Object>();
                hashmap.put("name",
                        cursor.getString(cursor.getColumnIndex("name")));
                name[i] = cursor.getString(cursor.getColumnIndex("name"));
                hashmap.put("phone",
                        "[" + cursor.getString(cursor.getColumnIndex("phone"))
                                + "]");
                userlist.add(hashmap);
                if (i < cursor.getCount()) {
                    cursor.moveToNext();
                }
            }
            sa = new SimpleAdapter(DeleteActivity.this, userlist,
                    R.layout.list, new String[] { "name", "phone" }, new int[] {
                            R.id.namelist, R.id.phonelist });
            listview.setAdapter(sa);
        }
        listview.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub
                
                userdatabases.delete("userTable", "name=?",new String[] { name[position] });
                
                list();
            }
        });
        btnback.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                it.setClass(DeleteActivity.this, MainActivity.class);
                startActivity(it);
                finish();
            }
        });

    }
    public void list(){
        userlist = new ArrayList<HashMap<String, Object>>();
        cursor = userdatabases.rawQuery("select * from userTable", null);
        cursor.moveToFirst();
        if (cursor.getCount() > 0) {
            for (int i = 0; i < cursor.getCount(); i++) {
                HashMap<String, Object> hashmap = new HashMap<String, Object>();
                hashmap.put("name",
                        cursor.getString(cursor.getColumnIndex("name")));
                name[i] = cursor.getString(cursor.getColumnIndex("name"));
                hashmap.put("phone",
                        "[" + cursor.getString(cursor.getColumnIndex("phone"))
                                + "]");
                userlist.add(hashmap);
                if (i < cursor.getCount()) {
                    cursor.moveToNext();
                }
            }
            sa = new SimpleAdapter(DeleteActivity.this, userlist,
                    R.layout.list, new String[] { "name", "phone" }, new int[] {
                            R.id.namelist, R.id.phonelist });
            listview.setAdapter(sa);
        }
    }
}

MainActivity

package com.example.tongxinlu;

import java.util.ArrayList;
import java.util.HashMap;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class MainActivity extends Activity {
    Button btnadd, btndel;
    Intent it = new Intent();
    ListView listview;
    UserSQL usersql;
    SQLiteDatabase userdatabases;
    ArrayList<HashMap<String, Object>> userlist;
    String[] name=new String[100];

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btnadd = (Button) findViewById(R.id.add);
        btndel = (Button) findViewById(R.id.delete);
        listview = (ListView) findViewById(R.id.listView1);
        usersql = new UserSQL(MainActivity.this, "user.db", null, 1);
        userdatabases = usersql.getReadableDatabase();
        userlist = new ArrayList<HashMap<String, Object>>();
        Cursor cursor = userdatabases.rawQuery("select * from userTable", null);
        cursor.moveToFirst();
        if (cursor.getCount() > 0) {
            for (int i = 0; i < cursor.getCount(); i++) {
                HashMap<String, Object> hashmap = new HashMap<String, Object>();
                hashmap.put("name",
                        cursor.getString(cursor.getColumnIndex("name")));
                name[i]=cursor.getString(cursor.getColumnIndex("name"));
                hashmap.put("phone",
                        "["+cursor.getString(cursor.getColumnIndex("phone"))+"]");
                userlist.add(hashmap);
                if (i < cursor.getCount()) {
                    cursor.moveToNext();
                }
            }
            SimpleAdapter sa = new SimpleAdapter(MainActivity.this, userlist,
                    R.layout.list, new String[] { "name", "phone" }, new int[] {
                            R.id.namelist, R.id.phonelist });
            listview.setAdapter(sa);
        }
        listview.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub
                Intent intent=new Intent(MainActivity.this,DetailActivity.class);
                Bundle bd=new Bundle();
                bd.putString("name", name[position]);
            
                intent.putExtras(bd);
                startActivity(intent);
            }
        });
        btnadd.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                it.setClass(MainActivity.this, DetailActivity.class);
                Bundle bd=new Bundle();
                bd.putString("name", "");
                
                it.putExtras(bd);
                startActivity(it);

            }
        });
        btndel.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                it.setClass(MainActivity.this, DeleteActivity.class);
                startActivity(it);
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

运行截图:

posted @ 2016-05-13 08:59  09王绍俊  阅读(246)  评论(0编辑  收藏  举报