当前位置:文档之家› android实现一个简单的增删改查的数据库操作

android实现一个简单的增删改查的数据库操作

android实现一个简单的增删改查的数据库操作
android实现一个简单的增删改查的数据库操作

效果图

‘package com.example.empmanager;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

public class AddEmpActivity extends Activity {

private EditText empname,empno,empage,empsal;

private Button save,clear;

DBHelper helper=new DBHelper(this);

MainActivity activity=new MainActivity();

empInfo emp;

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/9517875601.html,yout.add_emp);

//初始化

empname=(EditText) findViewById(R.id.empname);

empno=(EditText) findViewById(R.id.empno);

empage=(EditText) findViewById(R.id.empage);

empsal=(EditText) findViewById(R.id.empsal);

save=(Button) findViewById(R.id.save);

clear=(Button) findViewById(R.id.clear);

save.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

// TODO Auto-generated method stub

String name=empname.getText().toString();

String no=empno.getText().toString();

String age=empage.getText().toString();

String sal=empsal.getText().toString();

if(name.length()>0&&no.length()>0&&age.length()>0&&sal.length()>0){

helper.insertEmp(name,no,age,sal);

Toast.makeText(AddEmpActivity.this, "增加成功", 1000).show();

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

startActivity(intent);

}

else{

Toast.makeText(AddEmpActivity.this, "增加失败", 1000).show();

}

}

});

clear.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

// TODO Auto-generated method stub

empname.setText("");

empno.setText("");

empage.setText("");

empsal.setText("");

}

});

}

}

主活动页面

package com.example.empmanager;

import android.os.Bundle;

import android.provider.ContactsContract.Data;

import https://www.doczj.com/doc/9517875601.html,monDataKinds.Phone; import android.app.Activity;

import android.app.AlertDialog;

import android.app.AlertDialog.Builder;

import android.app.ListActivity;

import android.content.Context;

import android.content.DialogInterface;

import android.content.Intent;

import android.database.Cursor;

import android.view.ContextMenu;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.ContextMenu.ContextMenuInfo;

import android.view.View.OnClickListener;

import android.widget.AdapterView;

import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.Button;

import android.widget.CheckBox;

import android.widget.ListView;

import android.widget.RelativeLayout;

import android.widget.SimpleAdapter;

import android.widget.SimpleCursorAdapter;

import android.widget.TextView;

import android.widget.Toast;

import android.widget.AdapterView.OnItemClickListener;

public class MainActivity extends Activity {

private Button insert,delete,update,select;

private TextView show_name,show_no,show_age,show_sal;

private ListView lv;

DBHelper helper=new DBHelper(this);

empInfo emp;

Cursor cursor;

public int _id;

// private Boolean bool = false;

private Menu myMenu;

private Context context;

SimpleCursorAdapter adapter;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/9517875601.html,yout.activity_main);

//初始化控件

insert=(Button) findViewById(R.id.insert);

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

update=(Button) findViewById(R.id.update);

select=(Button) findViewById(R.id.select);

show_name=(TextView) findViewById(R.id.show_name);

show_no=(TextView) findViewById(R.id.show_no);

show_age=(TextView) findViewById(R.id.show_age);

show_sal=(TextView) findViewById(R.id.show_sal);

lv=(ListView) findViewById(R.id.lv);

registerForContextMenu(lv);

insert.setOnClickListener(listener);

delete.setOnClickListener(listener);

update.setOnClickListener(listener);

select.setOnClickListener(listener);

}

OnClickListener listener=new OnClickListener() {

public void onClick(View v) {

switch(v.getId()){

case R.id.insert:

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

startActivity(intent);

break;

case R.id.delete:

break;

case R.id.update:

break;

case R.id.select:

select();

break;

}

}

};

//长按菜单

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

menu.setHeaderTitle("快捷操作");

menu.add(Menu.NONE, 1, 1, "删除");

menu.add(Menu.NONE, 2, 2, "修改");

super.onCreateContextMenu(menu, v, menuInfo);

}

//显示数据在listview上

public void select(){

Cursor cursor=helper.getCursorScrollData();

adapter=new SimpleCursorAdapter(MainActivity.this, https://www.doczj.com/doc/9517875601.html,yout.list_item, cursor, new String[]{"empname","empno","empage","empsal"}, new int []{R.id.show_name,R.id.show_no,R.id.show_age,R.id.show_sal});

lv.setAdapter(adapter);

adapter.notifyDataSetChanged();

}

//响应事件

public boolean onContextItemSelected(MenuItem item) {

// TODO Auto-generated method stub

//这样可以获取长按着弹出上下文菜单的LIstView点击的ID值

AdapterView.AdapterContextMenuInfo menuInfo=(AdapterContextMenuInfo) item.getMenuInfo();

final int id=(int) menuInfo.id;

if (-1 == id) {

super.onContextItemSelected(item);

}

switch(item.getItemId()){

case 1:

Cursor cursor1 = (Cursor) lv.getItemAtPosition(menuInfo.position);

cursor1.moveToPosition(menuInfo.position);

_id=cursor1.getInt(0);

Builder builder=new Builder(MainActivity.this);

builder.setMessage("你确定要删除?");

AlertDialog d=builder.create();

d.setButton("是", new DialogInterfac

e.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

helper.delete(_id);

select();//更新

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

}

});

d.setButton2("否", new DialogInterfac

e.OnClickListener(){

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

dialog.cancel();

}

});

d.show();

break;

case 2:

Intent intent = new Intent(this,UpdateEmpActivity.class);

Cursor cursor = (Cursor) lv.getItemAtPosition(menuInfo.position);

cursor.moveToPosition(menuInfo.position);

_id=cursor.getInt(0);

String empname = String.valueOf(cursor.getString(cursor.getColumnIndex("empname")));

String empno = String.valueOf(cursor.getString(cursor.getColumnIndex("empno")));

String empage = String.valueOf(cursor.getString(cursor.getColumnIndex("empage")));

String empsal = String.valueOf(cursor.getString(cursor.getColumnIndex("empsal")));

//跳转页面

intent.putExtra("empname", empname);

intent.putExtra("empno", empno);

intent.putExtra("empage", empage);

intent.putExtra("empsal", empsal);

intent.putExtra("_id",_id);

startActivity(intent);

break;

}

return super.onContextItemSelected(item);

}

}

package com.example.empmanager;

import android.app.Activity;

import android.content.Context;

import android.content.Intent;

import android.database.Cursor;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

public class UpdateEmpActivity extends Activity {

private EditText empname,empno,empage,empsal;

private DBHelper helper=new DBHelper(this);

private Cursor cursor;

private Button save,clear;

public int _id;

MainActivity activity=new MainActivity();

protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/9517875601.html,yout.add_emp);

empname=(EditText) findViewById(R.id.empname);

empno=(EditText) findViewById(R.id.empno);

empage=(EditText) findViewById(R.id.empage);

empsal=(EditText) findViewById(R.id.empsal);

save=(Button) findViewById(R.id.save);

clear=(Button) findViewById(R.id.clear);

//获取传来的数据

Intent intent=this.getIntent();

_id=intent.getIntExtra("_id", 0);

String emp_name = intent.getStringExtra("empname");

String emp_no = intent.getStringExtra("empno");

String emp_age=intent.getStringExtra("empage");

String emp_sal = intent.getStringExtra("empsal");

//显示在文本框中

empname.setText(emp_name);

empno.setText(emp_no);

empage.setText(emp_age);

empsal.setText(emp_sal);

save.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

// TODO Auto-generated method stub

String a1=empname.getText().toString();

String a2=empno.getText().toString();

String a3=empage.getText().toString();

String a4=empsal.getText().toString();

helper.UpdateEmp(_id, a1, a2, a3, a4);

Toast.makeText(UpdateEmpActivity.this, "修改成功", 5).show();

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

startActivity(intent);

}

});

clear.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

// TODO Auto-generated method stub

}

});

}

}

Android学习笔记---SQLite介绍,以及使用Sqlite,进行数据库的创建,完成数据添删改查的理解

Android学习笔记---SQLite介绍,以及使用Sqlite,进行数据库的创建,完成数据添删改查的理解 17_创建数据库与完成数据添删改查--------------------------------------1.SQLite介绍:最大特点是,无数据类型; 除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据。在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER n n 、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型 n n 只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不 n n 过在运算或保存时会转成对应的五种数据类型。 SQLite最大的特点是你可以把各种类型的数n n 据保存到任何字段中,而不用关心字段声明的数据类型是什么。例如:可以在Integer类型的 n n 字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。n n n 但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数, 当向这种字段 n n 保存除整数以外的数据时,将会产生错误。 另外, SQLite 在解析CREATE TABLE 语句时, n n 会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息,如下面语句会忽略 name字段 n n 的类型信息: CREATE TABLE person (personid integer primary key autoincrement, name varchar n n (20)) SQLite可以解析大部分标准SQL语句,如:查询语句:select * from 表名 where 条件子句 group by 分组字句 having ... order byn n n 排序子句如:select * from person n n n n select * from person order by id desc n n n n select name from person group by name having count(*)>1 ---------------------------------------------------------------------------2.a.分页SQL与mysql类似,下面SQL语句获取5条记录,跳过前面3条记录n n select * from Account limit 5 offset 3 或者 select * from Account limit 3,5 n b.select * from Account limit 3,5,指的是跳过前面的3条记录,然后获取5条记录n c.select * from Account limit 3,5是select * from Account limit 5 offset 3语句 n n 的简写版 -------------------------------------------------------------------------------n 3.常用操作: a.插入语句:insert into 表名(字段列表) values(值列表)。如: insert into person nn n n (name, age) values(‘传智’,3) b.更新语句:update 表名 set 字段名=值where 条件子句。如:update person set name=n n n n'credream ‘where id=10 c.删除语句:delete from 表名 where 条件子句。如:delete from person nwhere id=10 -------------------------------------------------------------------------------2.虽然无数据类型,但是建议加上,这样可以增加可读性,支持标准sql,oracle中的不行 ---------------------------------------------------3.获取添加记录后的自增长的ID值:select last_insert_rowid(); -----------------------------------------------------------4.在android中开发数据库应用: n a.创建数据库:以前在javaee时候,需要手工数据,但是android应用,需要运行在用户的 n n 手机上,所以,android应用,要有自动创建数据库功能,当第一次使用软件的时候 n n 就创建数据库----------------------------------------5.关于数据库自动创建的详细介绍: 我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很 n n 多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建出 n n 应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数据 n n 表结构进行更新。那么,我们如何才能实现在用户初次使用或升级软件时自动在用户的手机 n n 上创建出应用需要的数据库表呢?总不能让我们在每个需要安装此软件的手机上通过手工方 n n 式创建数据库表吧?因为这种需求是每个数据库应用都要面临的,所以在Android系统,为我 n n 们提供了一个名为SQLiteOpenHelper的抽象类,必须继承它才能使用,它是通过对数据库版 n n 本进行管理来实现前面提出的需求。n -----------------------------------------6.SQLite数据库添加,删除,改查操作 n A.创建数据库:SQLiteOpenHelper .getWritableDatabase ()或getReadableDatabase() n n 可以创建数据库7.创建完成以后可以使用SQLITE Expert软件打开生成的数据库n 可以看到除了生成的自己的需要的表之外,还生成了一张:android_metadata表: n 如果在sqlite中使用数据库一定会有一张android_metadata表,用来登记用户的 n 使用语言:zh_cn -----------------------------------------------------n b.数据库自动创建的过程及方法详细介绍: n n我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在 n n 很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建 n n 出应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数n n 据表结构进行更新。那么,我们如何才能实现在用户初次使用或升级软件时自动在用户的手 n n 机上创建出应用需要的数据库表呢?总不能让我们在每个需要安装此软件的手机上通过手工 n n 方式创建数据库表吧?因为这种需求是每个数据库应用都要面临的,所以在Android系统,为n n 我们提供了一个名为SQLiteOpenHelper的抽象类,必须继承它才能使用,它是通过对数据库n n 版本进行管理来实现前面提出的需求。n -------------------------------------------8.详细介绍: 为了实现对数据库版本进行管理,SQLiteOpenHelper类提供了两个重要的方法,分别是 n n onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, intn n n newVersion),前者用于初次使用软件时生成数据库表,后者用于升级软件时更新数据库表结n n 构。当调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获n n 取用于操作数据库的SQLiteDatabase实例的时候,如果数据库不存在,Android系统会自动生 n n 成一个数据库,接着调用onCreate()方法,onCreate()方法在初次生成数据库时才会被调用 n n ,在onCreate()方法里可以生成数据库表结构及添加一些应用使用到的初始化数据。 n n onUpgrade()方法在数据库的版本发生变化时会被调用,一般在软件升级时才需改变版本号, n n 而数据库的版本是由程序员控制的,假设数据库现在的版本是1,由于业务的变更,修改了数n n 据库表结构,这时候就需要升级软件,升级软件时希望更新用户手机里的数据库表结构,为n n 了实现这一目的,可以把原来的数据库版本设置为2(有同学问设置为3行不行?当然可以,如 n n 果你愿意,设置为100也行),并且在onUpgrade()方法里面实现表结构的更新。当软件的版本 n n 升级次数比较多,这时在onUpgrade()方法里面可以根据原版号和目标版本号进行判断,然后 n n 作出相应的表结构及数据更新。 getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的 n n SQLiteDatabase实例。但getWritableDatabase() 方法以读写方式打开数据库,一旦数据库n n 的磁盘空间满了,数据库就只能读而不能写,倘若使用的是getWritableDatabase() 方法就 n n 会出错。getReadableDatabase()方法先以读写方式打开数据库,如果数据库的磁盘空间满了 n n ,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。 ------------------------------------------------------------------------9.创建数据库的代码: n a.创建项目:DBSQLIte n b./DBSQLIte/src/com/credream/service/DBOpenHelter.java n n package com.credream.service; n n import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; n n public class DBOpenHelter extends SQLiteOpenHelper { //父类没有默认构造器,需要显示调用 public DBOpenHelter(Context context) { super (context, "credream.db", null, 1); //数据库创建完成后,默认会保存在<包>/database/文件夹下 //当修改版本号时候,会触发:onUpgrade方法 //第二个:指定数据库名称, //第三个:游标工厂,用来迭代,查询后的结果集,null代表使用系统默认的 n n 游标工厂//版本号,大于0 n } /** n* 这个方法是在数据库第一次被创建的时候调用的 n*/ @Override public void onCreate(SQLiteDatabase db) { //SQLiteDatabase这个类,封装了增删改查操作,也叫做数据库操作实例 db.execSQL("CREATE TABLE person (personid integer primary keyn n n autoincrement, name varchar(20))"); //这里也可以不写name的数据类型,因为sqlite是数据类型无关的,就是写n n 了varchar(20),也可以写入超过20的内容 n n } /** n* 当数据库的版本号变更的时候被调用 n*/ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("alter table person add phone varchar(12) null"); n n } n n } --------------------------------------------------------2.在清单文件中写入测试环境 n n n n n n n n n n ---------------------------------------------------- 3./DBSQLIte/src/com/credream/test/PersonServiceTest.java package com.credream.test; n n import com.credream.service.DBOpenHelter; n n import android.test.AndroidTestCase; n n public class PersonServiceTest extends AndroidTestCase { //创建数据库,在<包>/database/ public void testCreateDB(){ DBOpenHelter dbOpenHelter=new DBOpenHelter(getContext()); dbOpenHelter.getWritableDatabase(); n } n n } -------------------------------------------------------4.选择方法开始测试,然后,在data/data/<包>/database/下 n 查看并用sqlite打开生成的数据库检查是否正确---------------------------------------------然后将版本号,改成2,然后再次执行,看到,表已经被更新,增加了一列phone -----------------------------------------------5.了解sqlite工作的原理: n DBOpenHelter dbOpenHelter=new DBOpenHelter(getContext()); dbOpenHelter.getWritableDatabase(); n 打开getWritableDatabase();代码:

android开发计算器设计开发报告

《安卓开发》程序设计报告 题目简单计算器开发 专业(班级)网工111班 姓名张波波 学号5(qq) 指导教师赵(老师) 日期 目录 一、设计说明:2 1.设计内容:Android简单应用程序开发,简单计算器。2 2程序说明:2 二、开发环境:3 三、概要设计:3 系统的总体3 四、程序流程和系统功能设计3 程序流程设计3 .系统功能设计4 基于Android平台系统具体设计4 总体模块详细设计5 输入模块详细设计 5

显示模块详细设计6 计算模块详细设计 6 五、计算器系统实现7 Android应用程序构成7 六、截图说明 8 1、图标8 2界面8 3运算界面9 4错误输入9 5设计平台界面10 6签名导出apk 10 七、总结 11 课程设计任务书 一、设计说明: 1.设计内容:Android简单应用程序开发,简单计算器。 2程序说明: 1、计算器界面友好,方便使用。 2、具有基本的加、减、乘、除功能,还有+—、开方、平方功能。能够判断用户输入运算数是否正确。4、 支持小数运算。 具有退格功能,能够删除最后一个输入,ce。 具有清除功能,删除所有,c。 具有结果存储功能,能够显示存储器状态,支持触屏手机。 支持最低版本,最高版本。开发时为

二、开发环境: 开发环境:本系统是采用Eclipse+EclipseMe+JDK+ADT作为开发平台。事实上为了节约时间就直接用Google公司安给的直接绑定好的adt-bundle-windows-x86_64开发,只需要配置下环境变量,无需要关联等操作。 三、概要设计: 系统的总体 整个程序基于android技术开发,出总体模块外主要分为输入模块、显示模块以及计算模块(包括一些其她功能)这三大部分。在整个系统中总体模块控制系统的生命周期,输入模块部分负责读取用户输入的数据,显示模块部分负责显示用户之前输入的数据以及显示最终的计算结果,计算模块部分负责进行数据的运算以及一些其她的功能。 总体模块的作用主要是生成应用程序的主类,控制应用程序的生命周期。输入模块主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应触屏的按键,需要监听手机按键动作以及用指针事件处理方法处理触屏的单击动作(以松开按键为准)。同时提供了较为直观的键盘图形用户界面。 显示模块描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结果,同时还负责显示一些其她的信息。 计算模块则主要描述了计算器的整体,实现了计算器的界面,负责计算用户输入数据,包括加、减、乘、除、等各种计算功能,记忆数据的相关功能,退格以及清零的功能。 四、程序流程和系统功能设计 程序流程设计 知道了系统的功能以后,我们通过来建立显示界面,完成后系统开始监听用户的按键输入,每次输入系统都会判断一次用户输入的类型,是数字还是运算符号或者是清除,判断完后分成不同类型如数字,符号,基本运算等等进行进一步的处理,根据用户的要求继续进行下一步的操作,最后计算出最终结果并显示在显示区。 系统流程图如图4-1所示:

Android移动应用开发实验指导书

《Android移动应用开发》 实验指导书 课程代码: 总课时数: 适用专业: 院(系)名称:

实验一深入理解Activity 目标 (1)掌握Activity的开发、配置和使用。 (2)掌握Intent的几种常用的属性。 (3)Android系统内置Intent的使用。 (4)了解Activity的生命周期 实验软、硬件环境 硬件:PC电脑一台; 配置:winxp或win7系统,内存大于4G,硬盘250G及以上 JDK1.7 、Eclipse、ADT、Android SDK 实验主要技术基础 (1)活动是Android的四大组件之一,它是一种可以包含用户界面的组件,主要用于和用户进行交互。 (2)Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。 任务 1、请在AndroidManifest.xml文件中配置SecondActivity: 配置Intent的Action属性为com.sise.intent.action.JHY_ACTION; 配置Category属性为com.sise.intent.category.JHY_CATEGORY。 通过隐式Intent的使用从FirstActivity启动SecondActivity,编写代码,运行程序,预期效果如下所示。

图1 程序运行初始化界面图2 点击图1中的按钮后的运行结果 2、请使用显式Intent启动SecondActivity,并使用Intent从FirstActiv传递数据到SecondActivity。编写代码,运行程序,预期效果如下所示。 图1 程序运行初始化界面图2 点击图1中的按钮后的运行结果 3、使用Intent传递数据从SecondActivity返回数据到FirstActivity中去。编写代码,运行程序,预期效果如下所示。 图1 程序运行初始化界面图2 点击图1按钮运行结果 图3 点击图2按钮运行结果 实验方法与步骤 (1)创建活动 Activity是Android系统提供的一个活动基类所有的活动都必须直接或间接继承此类才能拥有活动的特性。 (2)布局文件 创建布局文件 加载布局文件 (3)在清单文件中注册活动 (4)以上方法完成多个活动的创建 (5)使用Intent完成多个活动之间的交互和数据传递

android开发计算器设计开发报告

Xx大学计算机与电子 信息学院《移动编程 技术》安卓程序开发 设计报告---简单计算 器 《安卓开发》程序设计报告 题目简单计算器开发 专业(班级) 网工111班 姓名张波波 学号952937885(qq) 指导教师赵(老师) 日期2014.5.7

目录 一、设计说明: (3) 1.设计内容:Android简单应用程序开发,简单计算器。 (3) 2程序说明: (3) 二、开发环境: (3) 三、概要设计: (3) 3.1 系统的总体 (3) 四、程序流程和系统功能设计 (4) 4.1程序流程设计 (4) 4.2.系统功能设计 (5) 4.3基于Android平台系统具体设计 (6) 4.3.1 总体模块详细设计 (6) 4.3.2 输入模块详细设计 (6) 4.3.3 显示模块详细设计 (7) 4.3.4 计算模块详细设计 (7) 五、计算器系统实现 (8) 5.1 Android应用程序构成 (8) 六、截图说明 (9) 1、图标 (9) 2界面 (10) 3运算界面 (11) 4错误输入 (11) 5设计平台界面 (12) 6签名导出apk (12) 七、总结 (13)

课程设计任务书 一、设计说明: 1.设计内容:Android简单应用程序开发,简单计算器。 2程序说明: 1、计算器界面友好,方便使用。 2、具有基本的加、减、乘、除功能,还有+—、开方、平方功能。 3、能够判断用户输入运算数是否正确。 4、 4、支持小数运算。 5、具有退格功能,能够删除最后一个输入,ce。 6、具有清除功能,删除所有,c。 7、具有结果存储功能,能够显示存储器状态,支持触屏手机。 8、支持最低版本2.0,最高版本4.4。开发时为4.2 二、开发环境: 开发环境:本系统是采用Eclipse+EclipseMe+JDK+ADT作为开发平台。事实上为了节约时间就直接用Google公司安给的直接绑定好的adt-bundle-windows-x86_64开发,只需要配置下环境变量,无需要关联等操作。 三、概要设计: 3.1 系统的总体 整个程序基于android技术开发,出总体模块外主要分为输入模块、显示模块以及计算模块(包括一些其她功能)这三大部分。在整个系统中总体模块控制系统的生命周期,输入模块部分负责读取用户输入的数据,显示模块部分负责显示用户之前输入的数据以及显示最

android开发——简易计算器的设计报告

简易计算机的设计 摘要:Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的、应用程序可以轻松的嵌入网络、应用程序可以并行运行。 一、实训目的 1、了解Android系统,学会Android开发环境的搭建。 2、了解E clipse,学会用E clipse和Java 开发一个Android程序。 3、进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,能够熟练的应用面向对象的思想和设计方法解决实际问题的能力。 4、巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。 二、实训任务 1、Activity的相关知识 简单理解Activity 代表一个用户所能看到的屏幕,Activity 主要是处理一个应用的整体性工作。Activity是最基本的Android 应用程序组件,应用程序中,一个活动通常就是一个单独的屏幕。每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对事件做出响应。大多数的应用是由多个屏幕显示组成,因而要用到多个Activity。 (1)Activity的相关方法及相关函数:void onCreate(Bundle)首次启动时调用,接受参数:Null or savedInstanceState(保存的以前某些状态信息);void onStart() 说明了将要显示给用户的活动;void onRestart()将处于停止状态的活动重新显示给用户;void onResume()用户可以开始与活动进行交互时

安卓开发课程设计报告

下载可编辑 .专业.整理. 武汉理工大学华夏学院 课程报告课程名称:智能手机软件开发 题目:基于Android的手机 通讯录的设计与实现 专业信息工程系

班级 学号 姓名 成绩 指导教师 2015年3月23日至2015年6月12日 智能手机软件开发大作业 根据所学的Android 手机开发的知识,采用Eclipse、JAVA开发一个基于Android平台的手机通讯录软件,具体要求如下: 1.要发该软件能够在Android4.0 以上的平台上运行。 2.要求软件界面美观,操作方便,符合日常使用规范。 3.能够通过该手机通讯录来添加新的联系人,用来存放联系人的姓名、单位、电话、QQ、地址等信息。 4.能够通过该手机通讯录来编辑联系人信息,来修改联系人的个人信息。 5.能够通过该手机通讯录来调用系统的通信接口,直接给用户发短信,打电

下载可编辑 话。 6.在手机通讯录中,添加合适的菜单,来操作手机通讯录。 7.将开发的过程写成报告,要求内容完整,格式规范,条理清晰。 1 设计目的 随着手机通讯录功能的不断加强与完善,手机通讯录对于人们的意义,已不仅仅像记事簿一样显示通讯地址,而是向着个性化、人性化的方向发展移动终端的应用软件和需要的服务将会有很大的发展空间。根据这个特点,设计一个基于Android平台的通讯录系统,能根据手机的特点,存储,管理,修改 .专业.整理.

联系人信息,并且能够根据选定的联系人,对其拨打电话,发送短信等。 手机通讯录作为手机的基本功能之一,每天我们都在频繁地使用着。根据手机功能使用调查显示,通讯录从无到有,从英文到中文,经过了十几年的发展历程,今后的发展趋势就是从通讯录发展为名片夹,也就是在一个人名下,可以存储座机、手机、单位、地址、电子邮件等内容。所以手机通讯录功能越来越齐全,满足了人们的需求。 2 开发环境 由于该android通讯录是一个基于Java语言开发软件,所以选择了Eclipse3.4作为开发平台,作为插件,它能够安装Android SDK,从而可以安装使用Android虚拟机,使得程序得以开发,亦更为方便。 本通讯录系统就是在Eclipse3.4+Android平台环境下编写设计而成的。 3 需求分析 该系统针对的主要用户是Android手机用户。Android手机通信管理系统包括以下主要内容: (1) 用户通过联系人功能可以保存联系人的详细信息,可以对联系人进行编辑、删除、拨打电话、发送短信可以根据索引条件搜索联系人。 (2) 用户通过短信记录功能可以发送短信,删除短信记录。 (3) 用户通过SD卡所储存信息向通讯录批量导入联系人信息。 (4) 用户通过个人中心可以设置自己的详细信息,这样方便其他人了解自己,也可以将具有相同名字的联系人合并。

android简单计算器课程设计

摘要 Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。而简单计算器又是手机上必备的小程序,所以此次创新实践很有意义。并且具有很强的使用性。 关键字:Android Java基础计算器

目录 第1章开发工具与环境 (1) 1.1 Android平台 (1) 1.2 Java开发环境 (1) 1.3 Eclipse (1) 1.4 Android程序基础—Android应用程序的构成 (2) 第2章系统分析与设计 (4) 2.1系统的可行性分析 (4) 2.2 系统的需求分析 (4) 2.3 系统的优势 (4) 2.4 系统的流程图 (5) 第3章系统详细设计 (6) 3.1 动作Activity (6) 3.2 布局文件XML (6) 3.3 Activity的详细设计 (7) 3.2 布局文件XML的详细设计 (21) 3.2 系统的运行结果 (24) 结论 (25) 参考文献 (26)

第1章开发工具与环境 1.1 Android平台 1.谷歌与开放手机联盟合作开发了Android, 这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军企业组成。 2.Android是一个真正意义上的开放性移动设备综合平台。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。 3.所有的Android应用之间是完全平等的。 4.所有的应用都运行在一个核心的引擎上面,这个核心引擎其实就是一个虚拟机,它提供了一系列用于应用和硬件资源间进行通讯的API。撇开这个核心引擎,Android的所有其他的东西都是“应用”。 5.Android打破了应用之间的界限,比如开发人员可以把Web上的数据与本地的联系人,日历,位置信息结合起来,为用户创造全新的用户体验。 1.2 Java开发环境 Java技术包含了一个编程语言及一个平台。Java编程语言具有很多特性,如面向对象、跨平台、分布式、多线程、解释性等等。Java编程语言起源于Sun公司的一个叫“Green”的项目,目的是开发嵌入式家用电器的分布式系统,使电气更加智能化。1996年1月发布了JDK1.1版本,一门新语言自此走向世界。之后,1998年12月发布了1.2版本,2002年2月发布1.4版本,2004年10月发布1.5版本(5.0),2006年12月发布1.6(6.0)版本,这是目前的最新版本。Java1.2版本是一个重要的版本,基于该版本,Sun将Java技术分为J2SE、J2ME、J2EE,其中J2SE为创建和运行Java程序提供了最基本的环境,J2ME与J2EE 建立在J2SE的基础上,J2ME为嵌入式应用(如运行在手机里的Java程序)提供开发与运行环境,J2EE为分布式的企业应用提供开发与运行环境。 1.3 Eclipse

基于安卓的计算器的设计与实现

安卓应用程序设计 ——简易计算器的实现院(系)名称 专业名称 学生姓名 学生学号 课程名称 2016年6月日

1.系统需求分析 Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android 的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。计算器通过算法实行简单的数学计算从而提高了数学计算的效率,实现计算器的界面优化,使界面更加友好,操作更加方便。基于android的计算器的设计,系统具有良好的界面;必要的交互信息;简约美观的效果。使用人员能快捷简单地进行操作,即可单机按钮进行操作,即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间。 2.系统概要设计 2.1计算器功能概要设计 根据需求,符合用户的实际要求,系统应实现以下功能:计算器界面友好,方便使用,,具有基本的加、减、乘、除功能,能够判断用户输入运算数是否正确,支持小数运算,具有清除功能。 图2.1系统功能图 整个程序基于Android技术开发,除总体模块外主要分为输入模块、显示模块以及计算模块这三大部分。在整个系统中总体模块控制系统的生命周期,输入模块部分负责读取用户输入的数据,显示模块部分负责显示用户之前输入的数据以及显示最终的计算结果,计算模块部分负责进行数据的运算以及一些其他的功能。具体的说,总体模块的作用主要是生成应用程序的主类,控制应用程序的生命周期。 输入模块主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及 响应触屏的按键,需要监听手机动作以及用指针事件处理方法处理触屏的单击动作。同时提供了较为直观的键盘图形用户界面。 显示模块描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结

基于android的手机日程管理系统数据库设计说明书

基于Android的手机日程管理系统的设计与 实现 数据库设计说明书 学生姓名:王炜 学号: 0911******* 指导教师:刘雪梅 课题类型: AXP 专业:软件工程 学部:信息学部 审核组长: 北京城市学院 2013 年 2月 19日

日期版本说明作者2013/2/19 1 未评审的初稿王炜2013/3/6 2 内容删改王炜

目录 1、引言 (1) 1.1编写目的 (1) 1.2背景 (1) 1.3参考资料 (1) 2、外部设计 (2) 2.1标识符和状态 (2) 2.2使用它的程序 (2) 2.3约定 (2) 2.4专门指导 (4) 2.5支持软件 (4) 3、结构设计 (4) 3.1概念结构设计 (4) 3.2逻辑结构设计 (6) 3.3物理结构设计 (6) 4、运用设计 (7) 4.1数据字典设计 (7) 4.1.1数据流和数据文件 (8) 4.1.2数据项 (8) 4.2安全保密设计 (9)

1、引言 1.1编写目的 数据库设计说明书是根据概要设计说明书的要求所编写的,是为详细设计作依据的,为详细设计提供标准,并提供给毕业设计审核组。 1.2背景 待开发的数据库的名称:TODO_DB 使用此数据库的软件系统的名称:SQL 该软件系统开发项目的任务提出者:毕业设计审核组 该软件系统的用户:android手机用户 1.3参考资料 [1]《数据库系统概念(原书第5版)》作者:Database Systems Concepts ,Fifth Edition 出版社:机械工业出版社2009年 [2]《数据库系统原理教程》作者:王珊等清华大学出版社2008年 [3]赵亮;张维;;基于Android技术的界面设计与研究[J];电脑知识与技术;2009年29期. [4]方明;田野;户银龙;;基于Android平台的嵌入式软件项目组织方法[J];电脑知识与技术;2011年34期. [5]陈璟;陈平华;李文亮;;Android内核分析[J];现代计算机(专业版);2009年11期. [6]姚昱旻;刘卫国;;Android的架构与应用开发研究[J];计算机系统应用;2008年11期. [7]方明;田野;户银龙;;基于Android平台的嵌入式软件项目组织方法[J];电脑知识与技术;2011年34期. [8]叶炳发;Android操作系统移植及关键技术研究[D];暨南大学;2010年. [9]岳传真;Android系统移植和应用程序开发[D];复旦大学;2010年. [10]刘敏;移动终端的Android移植与应用程序设计[D];西安电子科技大学;2011年. [11]胡思捷;基于Android平台的触摸屏系统设计及实现[D];南开大学;2011年. [12]施金兰;基于Android平台的网络共享研究与实现[D];华东师范大学;2011年. [13]李凯;Android操作系统分析与移植[D];华南理工大学;2011年. [14]刘瑞顺;基于Android平台的智能手机输入法研究与设计[D];汕头大学;2011年.

android简单计算器代码

package hua.xing.demo; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class CalculatordemoActivity extends Activity implements OnClickListener { /** Called when the activity is first created. */ private Button but0 = null; private Button but1 = null; private Button but2 = null; private Button but3 = null; private Button but4 = null; private Button but5 = null; private Button but6 = null; private Button but7 = null; private Button but8 = null; private Button but9 = null; private Button dim = null; private Button add = null; private Button sub = null; private Button mult = null; private Button div = null; private Button equ = null; private EditText etext = null; private double value = 0;

基于Android的校园学生信息服务APP开发

基于Android的校园学生信息服务APP开发 本文浅析了基于Android的校园学生信息服务APP的总体框架以及关键技术,并浅析了其系统模块设计,以期为校园学生信息服务APP的开发提供借鉴。 随着信息网络技术的发展,各种移动终端得到了日益广泛的应用。移动终端具有显而易见的优势,个性便携,且便于对各种信息进行集中管理。高校校园网的数字化趋势日益显著,对信息管理的难度也与日俱增。且不同高校之间,缺乏高质量的数据共享和业务协同。因此,有必要对基于Android的校园学生信息服务APP进行开发。 1、总体框架 基于Android的校园学生信息服务APP,其应用平台,主要包括android手机客户端的APP以及后台服务器管理系统。该APP能有效满足校园学生的信息服务需求,实现学生对校园信息的便捷高效获取。该APP的后台服务器管理系统能有效管理数据库。该应用平台系统主要由以下层面构成:(1)Android手机终端访问层。该层主要包括基于android系统的手机APP程序,能通过该程序,实现对校园学生信息服务的访问。(2)网络接入层。网络接入层的本质是一种媒介,实现了手机终端和数据层的连接。网络接入层,主要采用GPRS服务以及WiFi网络服务。(3)数据层。数据层主要为手机终端访问层提供实时数据,并确保数据的统一性和安全性。同时,实时更新信息服务并加强维护。 2、关键技术 2.1数据交互技术 JSON是一种轻量级的数据交换格式,具有较为简单的结构,且具有灵活的操作性,容易实现阅读和编写,同时容易实现机器解析以及机器生成。另外,JSON 不需要对匹配标签进行使用,实现了传递信息的字节数的大幅度降低。基于Android的校园学生信息服务APP的平台,主要采用MySQL数据库进行数据的储存,该APP和服务器端通过网络实现对JSON格式数据的有效传输,在进行数据的传输时,要注重封装数据格式。通过解析JSON格式数据,实现其对数据库的插入以及对页面的显示。 2.2多线程消息及异步处理机制 通常,多线程的使用,有利于实现对程序响应效率的改善,并实现资源利用效率的有效提高。多线程在多核CPU中的应用,具有至关重要的意义。对多线程模式进行使用,能实现用户等待时间的有效减少,实现界面响应速率的有效提高。当程序中存在定时、耗时操作,以及计划任务和复杂运算时,为避免对系统性能造成不良影响,必须采用多线程的异步操作方式,这样有利于加快程序响应速度,有效避免系统工作的意外停止。另外,系统通过采用多线程实现对网络数

基于Android计算器功能的实现

基于Android计算器功能的实现 摘要 随着移动通信技术和网络技术的迅速发展,手机系统发生了巨大的变化,从进行简单通话功能的非智能手机到现在集上网、聊天、收发邮件、视屏电话会议等各种服务于娱乐为一身的智能手机系统。由Google公司牵头众多实力雄厚的软硬件厂商加盟成立了OMS联盟,并推出的Android平台手机系统。作为时代的新生儿,Android手机操作平台有着得天独厚的优势广阔的发展前景。本文正是基于Android平台开发的计算器。论文主要阐述以面向对象的程序开发语言eclipse为开发工具, 设计并实现基于Android的计算器。论文首先介绍了Android开发平台和环境以及Android 工程的重要部分,其次对计算器系统和程序进行了分析和设计,再次对计算器进行了系统的实现,并对系统进行了严格的验证,最后本文对所做工作进行了总结。 关键词:手机,Android,用户界面,计算器

THE CALCULATOR FUNCTION REALIZATION BASED ON ANDROID ABSTRACT With the development of mobile communication technology and network technology, great changes have taken place on the mobile phone system. The original mobile phone only has the functions of communication and Smartphone has the functions of internet, chat, video conferencing and other services and entertainment. Android mobile phone platform which was developed by Google Company and many equipment manufacturers of hardware and software vendors, as the era of neonatal has a unique advantage and prospects for development. This article is based on the Android platform calculator. The thesis describes object-oriented programming language eclipse development tools, design and implement a calculator based on the Android. The paper first introduces the Android development platform and environment as well as an important part of the Android project, followed by the calculator systems and procedures analysis and design, the realization of the system once again the calculator, and strict verification, Finally, a summary of the work done. Key words: mobile phone, Android, UI, calculator

相关主题
文本预览
相关文档 最新文档