实验报告

课程名称

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

实验日期

2016年5月3日

实验项目名称

SQLite数据库操作

实验地点

S30010

实验类型

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

学  时

2

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

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

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

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

(1)PC机

(2)操作系统:Windows XP

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

三、实验内容及步骤

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

2)定义字符串资源string.xml

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

4)layout目录下新建一个detail.xml,用于显示联系人详细信息

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

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

代码:

mainActivity.java的代码:

package com.example.sql;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import android.os.Bundle;

import android.printservice.PrintService;

import android.app.Activity;

import android.content.Intent;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.graphics.Color;

import android.util.Log;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.View.OnCreateContextMenuListener;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.AdapterView.OnItemLongClickListener;

import android.widget.Button;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity extends Activity {

Button add,delete;

ListView list;

MyOpenHelper dbhelper;

SQLiteDatabase db;

String s;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Log.i("kdsjflkasjdklfas", "daskfjaklsjfdklsaf");

add=(Button)findViewById(R.id.button1);

delete=(Button)findViewById(R.id.button2);

list=(ListView)findViewById(R.id.listView1);

Log.i("kdsjflkasjdklfas", "daskfjaklsjfdklsaf");

dbhelper=new MyOpenHelper(MainActivity.this, "personal_contacts.db",null,1);

db=dbhelper.getReadableDatabase();

Cursor c=db.rawQuery("select * from contacts", null);

inflateList(c);

list.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> arg0, View view,

int arg2, long arg3) {

// TODO Auto-generated method stub

view.setBackgroundColor(Color.BLUE);

TextView textview=(TextView)view.findViewById(R.id.textView1);

s = textview.getText().toString();

}

});

list.setOnItemLongClickListener(new OnItemLongClickListener() {

@Override

public boolean onItemLongClick(AdapterView<?> arg0, View view,

int arg2, long arg3) {

// TODO Auto-generated method stub

view.setBackgroundColor(Color.BLUE);

//                TextView textview=(TextView)view.findViewById(R.id.textView1);

//                s = textview.getText().toString();

Intent intent1=new Intent(MainActivity.this,result.class);

startActivity(intent1);

finish();

return false;

}

});

add.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

Intent intent=new Intent(MainActivity.this,result.class);

startActivity(intent);

finish();

}

});

delete.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

db.delete("contacts", "name=?", new String[]{s});

Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_LONG).show();

Cursor c=db.rawQuery("select * from contacts", null);

inflateList(c);

}

});

list.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> arg0, View view,

int arg2, long arg3) {

// TODO Auto-generated method stub

view.setBackgroundColor(Color.BLUE);

TextView textview=(TextView)view.findViewById(R.id.textView1);

s = textview.getText().toString();

}

});

}

private void inflateList(Cursor c) {

// TODO Auto-generated method stub

int count=c.getCount();

String[] name=new String[count];

int b=0;

while(c.moveToNext()){

name[b]=c.getString(c.getColumnIndex("name"));

b++;

}

ArrayList<HashMap<String, Object>> listitem=new ArrayList<HashMap<String,Object>>();

for(int i=0;i<count;i++){

HashMap<String,Object> map=new HashMap<String, Object>();

map.put("ItemTitle", "name[i]");

Log.i("jakfaksjflaksjfl", "skajfklajslkfj");

listitem.add(map);

SimpleAdapter m=new SimpleAdapter(MainActivity.this, listitem, R.layout.item, new String[]{"ItemTitle"}, new int[]{R.id.ItemTitle});

list.setAdapter(m);

@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;

}

}

运行结果:(截图)

  1. sql项目效果图:

五、实验总结(对本实验结果进行分析,实验心得体会及改进意见)

对于这次的实验,我感觉有点难度,因为思路不是很清晰,所以实验并没有成功,虽然可以成功的添加数据,但是并不能让数据显示在listView上,不过虽然失败了,但是还是有所收获,我会继续寻找解决的方法。

实验评语

 

实验成绩

 

指导教师签名:              年   月   日

           

实验八 sqlite数据库操作的更多相关文章

  1. 实验8 SQLite数据库操作

    实验报告 课程名称 实验8  SQLite数据库操作 实验日期 2016.5.6 实验项目名称 多媒体应用开发 实验地点 S30010 实验类型 □验证型    √设计型    □综合型 学  时 一 ...

  2. 【Android】实验8 SQLite数据库操作2016.5.12

    实验8  SQLite数据库操作 [目的] 设计一个个人通讯录,掌握Android平台下的数据库开发,该个人通讯录主要包括联系人列表和联系人详细信息等界面. [要求] 程序主界面是通讯录的目录显示手机 ...

  3. C# SQLite 数据库操作

    C# SQLite 数据库操作学习 运行环境:Window7 64bit,.NetFramework4.61,C# 7.0 参考: SQLite 官网 SQL As Understood By SQL ...

  4. 我的Android六章:Android中SQLite数据库操作

    今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...

  5. [python]用Python进行SQLite数据库操作

    用Python进行SQLite数据库操作 1.导入Python SQLITE数据库模块 Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~  ]: u ...

  6. 安卓 SQLite数据库操作实例

    前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...

  7. 在安卓开发中使用SQLite数据库操作实例

    前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...

  8. iOS 中SQLite数据库操作

    在iOS中实现SQLite数据库的操作:1.导入框架(libsqlite3.0.tbd) 2.导入头文件<sqlite3.h> 3.实现数据的增删改查 实现简单 SQLite数据库操作 的 ...

  9. sqlite数据库操作详细介绍 增删改查,游标

    sqlite数据库操作详细介绍 增删改查,游标     本文来源于www.ifyao.com禁止转载!www.ifyao.com Source code     package com.example ...

随机推荐

  1. C程序设计语言练习题1-4

    练习1-4 编写一个程序打印摄氏温度转换为相应华氏温度的转换表. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的 ...

  2. 查询Sqlserver 表结构信息 SQL

    SELECT 表名 then d.name else '' end, 表说明 then isnull(f.value,'') else '' end, 字段序号 = a.colorder, 字段名 = ...

  3. AIX和Linux中wtmp的不同处理方式

    wtmp 记录用户登录和退出事件.它和utmp日志文件相似,但它随着登陆次数的增加,它会变的越来越大,有些系统的ftp访问也在这个文件里记录,同时它也记录正常的系统退出时间,可以用ac和last命令访 ...

  4. 【转】如何调整visio绘图区域尺寸大小

    原文网址:http://jingyan.baidu.com/article/948f5924033870d80ff5f9f1.html 在使用microsoft visio软件绘图时,为了绘图的质量和 ...

  5. Spark集群模式概述

    作者:foreyou出处:http://www.foreyou.net/2015/06/22/spark-cluster-mode-overview/声明:本文采用以下协议进行授权: 署名-非商用|C ...

  6. 个性化定制——物流app

    众所周知,在互联网不断迈进的大环境下,各行各业都不免在这大潮下纷纷卷入.人们早已不再满足于传统行业,即便是所谓的新兴行业所带来的体验,他们更多的希望能够在便捷的基础上获取更加个性化的服务,个性化服务在 ...

  7. hdu2795--Billboard

    题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2795 摘要:有一块尺寸为h*w的矩形长板,要在上面贴1*wi的海报n张,选择贴海报的位置是:尽量高,同一 ...

  8. Map的内容按字母顺序排序

    map有自带的排序功能,但需要重写排序方法,代码如下: package coreJava.com.shindo.corejava.map; import java.util.ArrayList; im ...

  9. 提交App到Apple Store(Xcode4)

    昨 天终于顺利把公司的App提交了,还是很开心的.这是我第一个开发超过2个月的项目,开发期间学到了很多东西,接下来的时间我会逐渐梳理一下.来个倒叙, 今天就先说下怎么提交的吧.Xcode4以后,提交过 ...

  10. [RxJS] Creating Observable From Scratch

    Get a better understanding of the RxJS Observable by implementing one that's similar from the ground ...