Android数据存储和数据访问

合集下载

(完整word版)Android数据存储和数据访问要点

(完整word版)Android数据存储和数据访问要点

南昌航空大学实验报告二0一4 年11 月14 日课程名称:Android 实验名称:Android数据存储和数据访问班级:姓名:同组人:指导教师评定:签名:一:实验目的掌握SharedPreferences的使用方法;掌握各种文件存储的区别与适用情况;了解SQLite数据库的特点和体系结构;掌握SQLite数据库的建立和操作方法;理解ContentProvider的用途和原理;掌握ContentProvider的创建与使用方法二:实验工具Eclipse(MyEclipse)+ ADT + Android2.2 SDK;三:实验题目1.应用程序一般允许用户自己定义配置信息,如界面背景颜色、字体大小和字体颜色等,尝试使用SharedPreferences保存用户的自定义配置信息,并在程序启动时自动加载这些自定义的配置信息。

2.尝试把第1题的用户自己定义配置信息,以INI文件的形式保存在内部存储器上。

3.使用代码建库的方式,创建名为test.db的数据库,并建立staff数据表,表内的属性值如下表所示:属性数据类型说明_id integer 主键name text 姓名sex text 性别department text 所在部门salary float 工资实验目的掌握SharedPreferences的使用方法;掌握各种文件存储的区别与适用情况;了解SQLite数据库的特点和体系结构;掌握SQLite数据库的建立和操作方法;理解ContentProvider的用途和原理;掌握ContentProvider的创建与使用方法实验工具Eclipse(MyEclipse)+ ADT+ Android2.2 SDK;实验题目1.应用程序一般允许用户自己定义配置信息,如界面背景颜色、字体大小和字体颜色等,尝试使用SharedPreferences保存用户的自定义配置信息,并在程序启动时自动加载这些自定义的配置信息。

Android应用程序中的数据存储与读取方法

Android应用程序中的数据存储与读取方法

Android应用程序中的数据存储与读取方法第一章:介绍数据存储与读取在Android应用程序中的重要性在Android应用程序开发中,数据存储与读取是非常重要的一环。

Android应用程序通常需要保存用户数据、应用设置和其他持久化数据,以便在不同的应用会话中进行读取和使用。

为了实现这一功能,Android提供了多种数据存储与读取的方法,开发者可以根据具体需求选择最合适的方法。

第二章:SharedPreferences的数据存储与读取SharedPreferences是Android平台中一种简单、轻量级且易于使用的数据存储方法。

通过SharedPreferences,开发者可以将少量的键值对数据保存到应用的默认SharedPreferences文件中。

首先,开发者需要通过getSharedPreferences()方法获取SharedPreferences对象,然后使用putXxx()方法存储数据,最后使用getXxx()方法读取数据。

第三章:SQLite数据库的数据存储与读取SQLite是Android平台内置的轻量级关系型数据库。

在Android应用程序中,开发者可以使用SQLite来创建本地数据库,存储和读取大量结构化数据。

使用SQLite,开发者可以通过SQL语句来执行各种数据库操作,如创建表、插入数据、更新数据和查询数据等。

第四章:文件存储与读取除了SharedPreferences和SQLite数据库,Android应用程序还可以使用文件系统来进行数据存储与读取。

通过文件系统,开发者可以创建私有文件、公共文件和缓存文件。

使用FileOutputStream和FileInputStream类,开发者可以进行文件的写入和读取操作。

第五章:网络数据的存储与读取随着移动互联网的快速发展,Android应用程序越来越需要与服务器进行数据交互。

开发者可以通过网络请求获取服务器返回的数据,然后将这些数据存储到本地进行后续的读取和使用。

安卓学习之数据存储与访问

安卓学习之数据存储与访问

SharedPreferences:Activity之间的数据传递除了通过intent来传递外,还可以使用SharedPreferences来共享数据。

SharedPreferences是一种轻量级数据存储方式,能够实现不同应用程序间数据共享。

SharedPreferences使用键值对(Key-Value)的方式把简单数据类型(boolean、int、float、long和String)存储在应用程序的私有目录下自己定义的xml文件中。

私有目录是:/data/data/应用程序包名/shared_prefs/SharedPreferences编程:(1)写入数据://获得SharedPreferences对象(如果不存在则新建)SharedPreferences sp = getSharedPreferences(名称,访问模式);//名称是:SharedPreferences数据保存的XML文件名//获得可编辑对象SharedPreferences.Editor editor = sp.edit();editor.putString(“Name”,”abc”); //p ut方法写数据(key-value)//一定要提交才能保存mit();(2)读取数据://获得SharedPreferences对象(如果不存在则新建) SharedPreferences sp = getSharedPreferences(名称, 访问模式); String name = sp.getString("Name", "DefaultVal"); //get方法读数据//第2个参数:在无法获取值的时候使用的缺省值SharedPreferences支持的三种访问模式:⏹MODE_PRIVATE (=0,私有):仅创建SharedPreferences的程序有权限对其进行读取或写入。

Android开发中的数据存储和访问方法详解(三)

Android开发中的数据存储和访问方法详解(三)

Android开发中的数据存储和访问方法详解在Android应用开发中,数据存储和访问是一个非常重要的方向。

无论是开发一个国际知名的社交媒体应用,还是一个小巧实用的工具应用,都离不开对数据的存储和访问。

本文将围绕这一主题展开,分析Android开发中常见的数据存储和访问方法。

1. 内部存储内部存储是Android设备上每个应用的私有存储空间,只能被应用本身访问。

应用在内部存储中可以创建文件和目录,并进行读写操作。

这种存储方式适用于一些应用数据需要保密和不被其他应用访问的情况下。

常见的内部存储方法有使用Java的File和FileStream类,以及SharedPreferences类。

使用File和FileStream类可以方便地创建、读写和删除文件。

通过获取应用的内部存储目录,可以使用File类创建文件对象,然后通过FileStream类进行读写操作。

这种方法适用于需要对二进制文件进行读写的情况,比如保存应用设置、缓存文件等。

SharedPreferences类则适用于存储一些简单的键值对数据。

通过SharedPreferences类可以保存用户的偏好设置、记住用户名和密码等。

该类的使用非常简单,可以轻松实现数据的存储和访问。

2. 外部存储外部存储是指Android设备上的SD卡或其他外部存储设备,可以被多个应用共享访问。

外部存储可以用于存储一些较大的文件,比如音频、视频和图片等。

在访问外部存储时,需要校验设备是否存在外部存储设备,并且需要在Manifest文件中声明相应的权限。

使用外部存储时,可以通过Java的File和FileStream类来创建、读写和删除文件。

类似于内部存储,只是在创建文件时,需要将存储路径指定为外部存储路径。

使用外部存储需要注意空间的使用和设备兼容性,同时也要注意用户隐私和数据安全。

3. SQLite数据库如果应用需要存储大量结构化数据,如用户信息、应用日志等,那么使用SQLite数据库是一个很好的选择。

Android内部存储外部存储及读写权限

Android内部存储外部存储及读写权限

Android内部存储外部存储及读写权限Android内部存储、外部存储及读写权限随着手机应用的不断发展,Android操作系统成为了众多用户的首选。

在使用Android设备时,我们经常遇到一些与存储和读写权限相关的问题。

本文将介绍Android的内部存储和外部存储,以及相关的读写权限。

一、内部存储Android的内部存储是设备的固有存储空间,它用于存储应用程序的数据和其他私有文件。

内部存储只能由应用程序本身进行访问,其他应用程序无法直接访问该存储空间。

这种机制确保了用户数据的安全性和隐私。

使用内部存储时,Android提供了一些特定的目录,用于存储不同类型的数据。

其中最常见的是以下三个目录:1. /data/data/<packagename>:这个目录是每个应用程序的私有目录,用于存储应用的数据和配置文件。

只有当前应用程序可以访问和修改这个目录下的数据。

2. /data/user/0/<packagename>:这个目录是应用程序的用户专用存储,用户可以在应用程序中保存一些需要跨设备使用的数据。

3. /data/cache:这个目录用于存储应用程序的缓存文件。

当设备的存储空间不足时,系统可能会自动清理这个目录下的文件。

二、外部存储与内部存储相比,Android的外部存储是可移动的存储介质,如SD卡或USB设备。

外部存储被用于存储与多个应用程序共享的文件,如照片、视频和文档等。

在访问外部存储时,Android提供了一些预定义的目录:1. /storage/emulated/0:这个目录被认为是设备上的主要外部存储。

应用程序可以在这个目录下创建自己的私有目录和文件。

2. /storage/emulated/legacy:这个目录用于向后兼容旧版本的Android设备,它指向主要外部存储。

需要注意的是,虽然外部存储是可以被多个应用程序访问的,但Android仍然通过给每个应用程序分配特定的目录来确保数据的私密性。

Android内部存储外部存储及读写权限

Android内部存储外部存储及读写权限

Android内部存储外部存储及读写权限在我们使用 Android 设备的过程中,经常会涉及到数据的存储和读写操作。

了解 Android 的内部存储、外部存储以及相应的读写权限对于开发者和普通用户来说都非常重要。

首先,我们来谈谈 Android 的内部存储。

内部存储是指设备内部为应用程序分配的一块私有存储空间。

这个空间对于每个应用来说是相对独立和安全的,其他应用无法直接访问。

内部存储的优点在于其数据的保密性和安全性较高。

应用在内部存储中保存的数据,除非用户明确授予权限或者应用本身存在漏洞,否则其他应用无法获取。

这使得一些敏感信息,比如用户的登录凭证、个人设置等,可以安全地存放在内部存储中。

然而,内部存储也有其局限性。

由于它的空间相对较小,对于一些需要大量存储数据的应用,比如视频播放软件、大型游戏等,可能会很快耗尽内部存储的空间。

接下来,我们再看看 Android 的外部存储。

外部存储通常指的是我们常见的 SD 卡或者设备内置的可扩展存储空间。

与内部存储不同,外部存储是可以被多个应用共享访问的。

外部存储的优势在于其存储空间通常较大,可以满足应用存储大量数据的需求,比如照片、视频、音乐等文件。

但这也带来了一些潜在的问题。

由于多个应用可以访问外部存储,数据的安全性和一致性可能会受到一定影响。

在 Android 系统中,对于应用访问内部存储和外部存储,都有相应的读写权限控制。

这些权限的设置旨在保护用户的隐私和数据安全。

对于内部存储的读写权限,应用在默认情况下就具有读写自己内部存储空间的权限。

但如果应用想要访问其他应用的内部存储数据,这是被严格禁止的,除非通过特殊的系统机制或者用户明确授权。

而对于外部存储的读写权限,情况则相对复杂一些。

在 Android 60(API 级别 23)及更高版本中,应用在运行时需要动态申请读写外部存储的权限。

这意味着应用不能在安装时默认获得这些权限,而是在需要进行相关操作时向用户请求授权。

第6章Android数据的存储与访问

第6章Android数据的存储与访问
Company Logo
第6章 数据存储与访问
6.1 简单存储
可读 (MODE_WORLD_READABLE) 可写(MODE_WORLD_WRITEABLE) 如果将SharedPreferences定义为私有模式,只有创建程 序有权对其进行读取或写入; 如果将SharedPreferences定义为可读模式,不仅创建程 序有权对其进行读取或写入,其他程序可以对其进行读 取,但不能写入; 如果将SharedPreferences定义为可写模式,不仅创建程 序有权对其进行读取或写入,其他程序可以对其进行写 入,但不能读取。 定义访问模式的方法如下所示:
Company Logo
第6章 数据存储与访问
6.2 文件存储
是否具备 SD 卡。 最后,SD卡中数据的存取通过 FileOutputStream/FileInputStream进行, SD卡不存 在读写限制。 下面通过修改LX6_1案例程序得到的LX6_2案例程序来了 解如何在SD卡中进行数据的读取。 (1)为手机模拟器设置SD卡,参照上面的操作设置步骤 (2)在LX6_2工程项目的AndroidManifest.xml文件中 加入访问SDCard的权限语句。 (3)设计res/layout目录下的main.xml布局文件,添加 两个按钮控件和两个编辑框控件 (4)编写LX6_2.java文件代码
Company Logo
第6章 数据存储与访问
6.2 文件存储
接下来,通过LX6_1的案例程序了解如何操作内部数据的 存取。 (1)设计res/layout目录下的main.xml布局文件,添加两 个按钮控件和两个编辑框控件。 (2)编写LX6_1.java文件代码。 (3)保存并运行程序,效果如图所示。

Android五种数据存储方式

Android五种数据存储方式

Android五种数据存储⽅式android 五种数据存储:SharePreferences、SQLite、Contert Provider、File、⽹络存储Android系统提供了四种存储数据⽅式。

分别为:SharePreference、SQLite、Content Provider和File。

但由于Android系统中,数据基本是私有的,都是存放于”data/data”程序包名⽬录下,所以要实现数据共享,正确⽅式是使⽤Content ProviderSQLite:SQLite是⼀个轻量级的数据库,⽀持基本的SQL语法,是常被采⽤的⼀种数据存储⽅式。

Android为此数据库提供了⼀个名为SQLiteDatabase的类,封装了⼀些操作数据库的apiSharedPreference:除SQLite数据库外,另⼀种常⽤的数据存储⽅式,其本质就是⼀个xml⽂件,常⽤于存储较简单的参数设置。

File:即常说的⽂件(I/O)存储⽅法,常⽤语存储⼤数量的数据,但是缺点是更新数据将是⼀件困难的事情。

ContentProvider: Android系统中能实现所有应⽤程序共享的⼀种数据存储⽅式,由于数据通常在各应⽤间的是互相私密的,所以此存储⽅式较少使⽤,但是其⼜是必不可少的⼀种存储⽅式。

例如⾳频,视频,图⽚和通讯录,⼀般都可以采⽤此种⽅式进⾏存储。

每个Content Provider都会对外提供⼀个公共的URI(包装成Uri对象),如果应⽤程序有数据需要共享时,就需要使⽤Content Provider为这些数据定义⼀个URI,然后其他的应⽤程序就通过Content Provider传⼊这个URI来对数据进⾏操作。

URI由3个部分组成:"content://"、数据的路径、标识ID(可选)。

1)SQLite数据存储======================================================================SQLite是⼀种转为嵌⼊式设备设计的轻型数据库,其只有五种数据类型,分别为:NULL:空值INTEGER:整数REAL:浮点数TEXT:字符串BLOB:⼤数据在SQLite中,并没有专门设计BOOLEAN和DATE类型,因为BOOLEAN型可以⽤INTEGER的0和1代替true和false,⽽DATE类型则可以拥有特定格式的TEXT、REAL和INTEGER的值来代替显⽰,为了能⽅便的操作DATE类型,SQLite提供了⼀组函数,在Android系统中提供了anroid.database.sqlite包,⽤于进⾏SQLite数据库的增,删,改,查⼯作,其主要⽅法如下: beginTransaction(): 开始⼀个事务。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南昌航空大学实验报告二0一4 年11 月14 日课程名称:Android 实验名称:Android数据存储和数据访问班级:姓名:同组人:指导教师评定:签名:一:实验目的掌握SharedPreferences的使用方法;掌握各种文件存储的区别与适用情况;了解SQLite数据库的特点和体系结构;掌握SQLite数据库的建立和操作方法;理解ContentProvider的用途和原理;掌握ContentProvider的创建与使用方法二:实验工具Eclipse(MyEclipse)+ ADT + Android2.2 SDK;三:实验题目1.应用程序一般允许用户自己定义配置信息,如界面背景颜色、字体大小和字体颜色等,尝试使用SharedPreferences保存用户的自定义配置信息,并在程序启动时自动加载这些自定义的配置信息。

2.尝试把第1题的用户自己定义配置信息,以INI文件的形式保存在内部存储器上。

3.使用代码建库的方式,创建名为test.db的数据库,并建立staff数据表,表内的属性值如下表所示:4.建立一个ContentProvider,用来共享第3题所建立的数据库;四:实验代码InternalFileDemopublic class InternalFileDemo extends Activity {private final String FILE_NAME = "fileDemo.txt";private TextView labelView;private TextView displayView;private CheckBox appendBox ;private EditText entryText;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main);labelView = (TextView)findViewById(bel);displayView = (TextView)findViewById(R.id.display);appendBox = (CheckBox)findViewById(R.id.append);entryText = (EditText)findViewById(R.id.entry);Button writeButton = (Button)findViewById(R.id.write);Button readButton = (Button)findViewById(R.id.read);writeButton.setOnClickListener(writeButtonListener);readButton.setOnClickListener(readButtonListener);entryText.selectAll();entryText.findFocus();}OnClickListener writeButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {FileOutputStream fos = null;try {if (appendBox.isChecked()){fos = openFileOutput(FILE_NAME,Context.MODE_APPEND);}else {fos =openFileOutput(FILE_NAME,Context.MODE_PRIVATE);}String text = entryText.getText().toString();fos.write(text.getBytes());labelView.setText("文件写入成功,写入长度:"+text.length());entryText.setText("");} catch (FileNotFoundException e) {e.printStackTrace();}catch (IOException e) {e.printStackTrace();}finally{if (fos != null){try {fos.flush();fos.close();} catch (IOException e) {e.printStackTrace();}}}}};OnClickListener readButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {displayView.setText("");FileInputStream fis = null;try {fis = openFileInput(FILE_NAME);if (fis.available() == 0){return;}byte[] readBytes = new byte[fis.available()];while(fis.read(readBytes) != -1){}String text = new String(readBytes);displayView.setText(text);labelView.setText("文件读取成功,文件长度:"+text.length());} catch (FileNotFoundException e) {e.printStackTrace();}catch (IOException e) {e.printStackTrace();}}};}SimplePreferenceDemopublic class SimplePreferenceDemo extends Activity {private EditText nameText;private EditText ageText;private EditText heightText;public static final String PREFERENCE_NAME = "SaveSetting";public static int MODE = Context.MODE_WORLD_READABLE +Context.MODE_WORLD_WRITEABLE;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main);nameText = (EditText)findViewById();ageText = (EditText)findViewById(R.id.age);heightText = (EditText)findViewById(R.id.height);}@Overridepublic void onStart(){s uper.onStart();l oadSharedPreferences();}@Overridepublic void onStop(){s uper.onStop();s aveSharedPreferences();}private void loadSharedPreferences(){SharedPreferences sharedPreferences =getSharedPreferences(PREFERENCE_NAME, MODE);String name = sharedPreferences.getString("Name","Tom");int age = sharedPreferences.getInt("Age", 20);float height = sharedPreferences.getFloat("Height",1.81f);nameText.setText(name);ageText.setText(String.valueOf(age));heightText.setText(String.valueOf(height));}private void saveSharedPreferences(){SharedPreferences sharedPreferences =getSharedPreferences(PREFERENCE_NAME, MODE);SharedPreferences.Editor editor = sharedPreferences.edit();editor.putString("Name", nameText.getText().toString());editor.putInt("Age",Integer.parseInt(ageText.getText().toString()));editor.putFloat("Height",Float.parseFloat(heightText.getText().toString()));mit();}}SQLiteDemoDBAdapter.javapublic class DBAdapter {private static final String DB_NAME = "people.db";private static final String DB_TABLE = "peopleinfo";private static final int DB_VERSION = 1;public static final String KEY_ID = "_id";public static final String KEY_NAME = "name";public static final String KEY_AGE = "age";public static final String KEY_HEIGHT = "height";private SQLiteDatabase db;private final Context context;private DBOpenHelper dbOpenHelper;public DBAdapter(Context _context) {context = _context;}/** Close the database */public void close() {if (db != null){db.close();db = null;}}/** Open the database */public void open() throws SQLiteException {dbOpenHelper = new DBOpenHelper(context, DB_NAME, null, DB_VERSION);try {db = dbOpenHelper.getWritableDatabase();}catch (SQLiteException ex) {db = dbOpenHelper.getReadableDatabase();}}public long insert(People people) {ContentValues newValues = new ContentValues();newValues.put(KEY_NAME, );newValues.put(KEY_AGE, people.Age);newValues.put(KEY_HEIGHT, people.Height);return db.insert(DB_TABLE, null, newValues);}public People[] queryAllData() {Cursor results = db.query(DB_TABLE, new String[] { KEY_ID, KEY_NAME, KEY_AGE, KEY_HEIGHT},null, null, null, null, null);return ConvertToPeople(results);}public People[] queryOneData(long id) {Cursor results = db.query(DB_TABLE, new String[] { KEY_ID, KEY_NAME, KEY_AGE, KEY_HEIGHT},KEY_ID + "=" + id, null, null, null, null);return ConvertToPeople(results);}private People[] ConvertToPeople(Cursor cursor){int resultCounts = cursor.getCount();if (resultCounts == 0 || !cursor.moveToFirst()){return null;}People[] peoples = new People[resultCounts];for (int i = 0 ; i<resultCounts; i++){peoples[i] = new People();peoples[i].ID = cursor.getInt(0);peoples[i].Name =cursor.getString(cursor.getColumnIndex(KEY_NAME));peoples[i].Age =cursor.getInt(cursor.getColumnIndex(KEY_AGE));peoples[i].Height =cursor.getFloat(cursor.getColumnIndex(KEY_HEIGHT));cursor.moveToNext();}return peoples;}public long deleteAllData() {return db.delete(DB_TABLE, null, null);}public long deleteOneData(long id) {return db.delete(DB_TABLE, KEY_ID + "=" + id, null);}public long updateOneData(long id , People people){ContentValues updateValues = new ContentValues();updateValues.put(KEY_NAME, );updateValues.put(KEY_AGE, people.Age);updateValues.put(KEY_HEIGHT, people.Height);return db.update(DB_TABLE, updateValues, KEY_ID + "=" + id, null);}/** 静态Helper类,用于建立、更新和打开数据库*/private static class DBOpenHelper extends SQLiteOpenHelper {public DBOpenHelper(Context context, String name, CursorFactory factory, int version) {super(context, name, factory, version);}private static final String DB_CREATE = "create table " +DB_TABLE+ " ("+ KEY_ID+ " integer primary key autoincrement, " +KEY_NAME+ " text not null, "+ KEY_AGE+ " integer,"+ KEY_HEIGHT + " float);";@Overridepublic void onCreate(SQLiteDatabase _db) {_db.execSQL(DB_CREATE);}@Overridepublic void onUpgrade(SQLiteDatabase _db, int_oldVersion, int _newVersion) {_db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE);onCreate(_db);}}}People.javapublic class People {public int ID = -1;public String Name;public int Age;public float Height;@Overridepublic String toString(){String result = "";result += "ID:" + this.ID + ",";result += "姓名:" + + ",";result += "年龄:" + this.Age + ", ";result += "身高:" + this.Height + ",";return result;}}SQLiteDemo.javapublic class SQLiteDemo extends Activity {/** Called when the activity is first created. */private DBAdapter dbAdepter ;private EditText nameText;private EditText ageText;private EditText heightText;private EditText idEntry;private TextView labelView;private TextView displayView;@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(yout.main);nameText = (EditText)findViewById();ageText = (EditText)findViewById(R.id.age);heightText = (EditText)findViewById(R.id.height);idEntry = (EditText)findViewById(R.id.id_entry);labelView = (TextView)findViewById(bel);displayView = (TextView)findViewById(R.id.display);Button addButton = (Button)findViewById(R.id.add);Button queryAllButton = (Button)findViewById(R.id.query_all); Button clearButton = (Button)findViewById(R.id.clear);Button deleteAllButton = (Button)findViewById(R.id.delete_all);Button queryButton = (Button)findViewById(R.id.query);Button deleteButton = (Button)findViewById(R.id.delete);Button updateButton = (Button)findViewById(R.id.update);addButton.setOnClickListener(addButtonListener);queryAllButton.setOnClickListener(queryAllButtonListener);clearButton.setOnClickListener(clearButtonListener);deleteAllButton.setOnClickListener(deleteAllButtonListener);queryButton.setOnClickListener(queryButtonListener);deleteButton.setOnClickListener(deleteButtonListener);updateButton.setOnClickListener(updateButtonListener);dbAdepter = new DBAdapter(this);dbAdepter.open();}OnClickListener addButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {People people = new People(); = nameText.getText().toString();people.Age =Integer.parseInt(ageText.getText().toString());people.Height =Float.parseFloat(heightText.getText().toString());long colunm = dbAdepter.insert(people);if (colunm == -1 ){labelView.setText("添加过程错误!");} else {labelView.setText("成功添加数据,ID:"+String.valueOf(colunm));}}};OnClickListener queryAllButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {People[] peoples = dbAdepter.queryAllData();if (peoples == null){labelView.setText("数据库中没有数据");return;}labelView.setText("数据库:");String msg = "";for (int i = 0 ; i<peoples.length; i++){msg += peoples[i].toString()+"\n";}displayView.setText(msg);}};OnClickListener clearButtonListener = new OnClickListener() {@Overridepublic void onClick(View v) {displayView.setText("");}};OnClickListener deleteAllButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {dbAdepter.deleteAllData();String msg = "数据全部删除";labelView.setText(msg);}};OnClickListener queryButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {int id = Integer.parseInt(idEntry.getText().toString());People[] peoples = dbAdepter.queryOneData(id);if (peoples == null){labelView.setText("数据库中没有ID为"+String.valueOf(id)+"的数据");return;}labelView.setText("数据库:");displayView.setText(peoples[0].toString());}};OnClickListener deleteButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {long id = Integer.parseInt(idEntry.getText().toString());long result = dbAdepter.deleteOneData(id);String msg = "删除ID为"+idEntry.getText().toString()+"的数据" + (result>0?"成功":"失败");labelView.setText(msg);}};OnClickListener updateButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {People people = new People(); = nameText.getText().toString();people.Age =Integer.parseInt(ageText.getText().toString());people.Height =Float.parseFloat(heightText.getText().toString());long id = Integer.parseInt(idEntry.getText().toString());long count = dbAdepter.updateOneData(id, people);if (count == -1 ){labelView.setText("更新错误!");} else {labelView.setText("更新成功,更新数据"+String.valueOf(count)+"条");}}};}。

相关文档
最新文档