Android数据存储和数据访问

合集下载

Android课后习题答案整理

Android课后习题答案整理

第一章 Android简介1.简述各种手机操作系统的特点.答案:目前,手机上的操作系统主要包括以下几种,分别是Android、iOS、Windows Mobile、Windows Phone 7、Symbian、黑莓、PalmOS和Linux。

(1)Android是谷歌发布的基于Linux的开源手机平台,该平台由操作系统、中间件、用户界面和应用软件组成,是第一个可以完全定制、免费、开放的手机平台。

Android底层使用开源的Linux 操作系统,同时开放了应用程序开发工具,使所有程序开发人员都在统一、开放的开发平台上进行开发,保证了Android应用程序的可移植性。

(2)iOS是由苹果公司为iPhone、iPod touch、iPad以及Apple TV开发的操作系统,以开放源代码的操作系统Darwin为基础,提供了SDK,iOS操作系统具有多点触摸操作的特点,支持的控制方法包括滑动、轻按、挤压和旋转, 允许系统界面根据屏幕的方向而改变方向,自带大量的应用程序。

(3)Windows Mobile是微软推出的移动设备操作系统,对硬件配置要求较高,一般需要使用高主频的嵌入式处理器,从而产生了耗电量大、电池续航时间短和硬件成本高等缺点,Windows Mobile 系列操作系统包括Smartphone、Pocket PC和Portable Media Center。

随着Windows Phone 7的出现,Windows Mobile正逐渐走出历史舞台。

(4)Windows Phone 7具有独特的“方格子”用户界面,非常简洁,黑色背景下的亮蓝色方形图标,显得十分清晰醒目,集成了Xbox Live游戏和Zune音乐功能,可见Windows Phone 7对游戏功能和社交功能的重视。

(5)Symbian是为手机而设计的实时多任务32位操作系统,它的功效低,内存占用少,提供了开发使用的函数库、用户界面、通用工具和参考示例。

Android选择题集锦

Android选择题集锦

下面关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是?选择一项:a. DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念.b. DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux 中的一个进程,所以说不是一个概念.c. DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik 虚拟机实例.而每一个DVM 不一定都是在Linux 中的一个进程,所以说不是一个概念.d. DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念.题目2下列选项哪个不是Activity启动的方法?a. goToActivityb. startActivityc. startActivityFromChildd. startActivityForResult题目3解析xml 的方式有()a. 字符器类型b. 流方式c. domd. SAX题目4下列哪一个不属于Activity的生命周期方法?a. onInit( )b. onStart( )c. onStop( )d. onPause( )对于XML布局文件中的视图控件,layout_width属性的属性值不可以是什么?a. match_parentb. fill_parentc. wrap_contentd. match_content题目6对一些资源以及状态的操作保存,最好是保存在Activity生命周期的哪个函数中进行?a. onStart( )b. onPause( )c. onCreate( )d. onResume( )题目7关于视图控件的常用事件描述中,不正确的是?a. Click事件只能使用在按钮上,表示按钮的点击动作b. 当TextView类视图控件失去焦点或获得焦点时,将触发FocusChange事件c. 当单选框中某一选项被选择时,将触发CheckedChange事件d. 当多选框中某一选项被选择时,将触发CheckedChange事件题目8以下关于Android应用程序的目录结构描述中,不正确的是?a. src目录是应用程序的主要目录,由Java类文件文件组成b. assets目录是原始资源目录,该目录中的内容将不会被R类所引用c. res目录是应用资源目录,该目录中的所有资源内容都会被R类所索引d. AndroidManifest.xml文件是应用程序目录清单文件,该文件由ADT自动生成,不需要程序员手动修改题目9下列关于XML布局文件在Java代码中被引用的说明中,不正确的是?a. 在Activity中,可以使用findViewById( )方法,通过资源id,获得指定视图元素b. 在Activity中,可以使用R.drawable-system.***方式引用Android系统所提供的图片资源c. 在Activity中,可以使用setContentView( )方法,确定加载哪一个布局文件d. 可以使用View类的findViewById( )方法,获得当前View对象中的某一个视图元素题目10下列关于Android布局文件常用的长度/大小单位的描述中,不正确的是?a. dp是设备独立像素,不依赖于设备,是最常用的长度单位b. sp代表放大像素,主要用于字体大小的显示c. px是像素单位,在不同的设备上显示效果相同,因此推荐在布局中使用该单位d. 在设置空间长度等相对距离时,推荐使用dp单位,该单位随设备密度的变化而变化题目11下列哪一个选项不属于Android中预定义的布局方式?a. TabLayoutb. RelativeLayoutc. AbsoluteLayoutd. LinearLayout题目12下列哪一个选项不属于AdapterView类的子选项?Gallery ListView Spinner GridViewa. ListViewb. Spinnerc. GridViewd. ScrollView题目13下列哪一款移动设备搭载的是Android平台?a. NOKIA手机b. 小米手机c. iPhone手机d. iPad题目14下列关于ListView使用的描述中,不正确的是?a. 要使用ListView,必须为该ListView使用Adpater方式传递数据b. 要使用ListView,该布局文件对应的Activity必须继承ListActivityc. ListView中每一项的视图布局既可以使用内置的布局,也可以使用自定义的布局方式d. ListView中每一项被选中时,将会触发ListView对象的ItemClick事件题目15下列属于SAX解析xml文件的优点的是?a. 将整个文档树存储在内存中,便于操作,支持删除,修改,重新排列等多种功能b. 指网页元素的位置,距离右边框和下边框的距离c. 整个文档调入内存,浪费时间和空间d. 不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失题目16在android 中使用Menu 时可能需要重写的方法有?a. onOptionsItemSelected()b. onCreateOptionsMenu()c. onItemSelected()d. onCreateMenu()题目17下列关于内存回收的说明,哪个是正确的?a. 程序员必须创建一个线程来释放内存b. 内存回收程序允许程序员直接释放内存c. 内存回收程序负责释放无用内存d. 内存回收程序可以在指定的时间释放内存对象题目18下面异常是属于Runtime Exception 的是?a. NullPointerExceptionb. IllegalArgumentExceptionc. BufferUnderflowExceptiond. ArithmeticException题目19Math.round(11.5)等于多少(). Math.round(-11.5)等于多少?选择一项:a. 11 ,-11b. 11 ,-12c. 12 ,-11d. 12 ,-12题目20下列程序段:void complicatedexpression_r(){int x=20, y=30;boolean b;b=x>50&&y>60||x>50&&y60||xa. 1b. 0c. trued. false题目21在android中使用SQLiteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是?a. getDatabase()b. getWriteableDatabase()c. getReadableDatabase()d. getAbleDatabase()题目22android 关于service生命周期的onCreate()和onStart()说法正确的是?a. 如果service已经启动,将先后调用onCreate()和onStart()方法b. 当第一次启动的时候先后调用onCreate()和onStart()方法c. 当第一次启动的时候只会调用onCreate()方法d. 如果service已经启动,只会执行onStart()方法,不再执行onCreate()方法题目23下列选项中不属于GLSurFaceView特性的是?a. 管理一个surface,这个surface就是一块特殊的内存,能直接排版到android的视图view上。

《Android应用开发》课件——第5章 数据存储

《Android应用开发》课件——第5章 数据存储

File SDPath = Environment.getExternalStorageDirectory();
File file = new File(SDPath, "data.txt");获取SD卡目录
String data = "HelloWorld";
FileOutputStream fos = new FileOutputStream(file);
注意:Android系统有一套自己的安全模型,默认情况下任何应用创 建的文件都是私有的,其他程序无法访问。

5.2.1 将数据存入到文件中
内部存储
String fileName = "data.txt";
// 文件名称
String content = "helloworld";
// 保存数据
FileOutputStream fos = openFileOutput(fileName, MODE_PRIVATE);
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
动态申请权限的方法
外部存储 ✓ 存储位置
将数据以文件的形式存储到外部设备上。
✓ 存储位置
mnt/sdcard/目录下。
✓ 其它应用操作该文件时
不用设置权限,会被其它应用共享
✓ 删除文件
该文件可在本应用外删除,使用前需要 确认外部设备是否可用
✓ 删除文件
直接使用FileOutputStream和 FileInputStream操作对象

Android操作系统与应用开发第5章

Android操作系统与应用开发第5章

第5章 Android数据存储
实际上SharedPreferences是采用xml文件格式将数据存储
到设备中的,文件存放在File Explorer中的
/data/data/<package name>/shares_prefs目录下。如果希望
SharedPreferences使用的xml文件能被其他应用读和写,则可 以指定Context.MODE_WORLD_READABLE和 Context.MODE_WORLD_WRITEABLE权限。
第5章 Android数据存储
button.setOnClickListener(new Button.OnClickListener()
{ @Override public void onClick(View v) { //这部分是自动产生方法桩 try {
//写入数据
第5章 Android数据存储
第5章 Android数据存储
一个实现SharedPreferences存储的实例代码如下:
//获取SharedPreferences对象 SharedPreferences user = getSharedPreferences(“user_info”, MODE_PRIVATE); //存入数据 Editor editor = user.edit(); editor.putString(“NAME”, “hello”);
(当然不是真的SD卡,只是镜像文件)。创建SD卡可以在
Eclipse创建模拟器时随同创建,也可以使用DOS命令进行创
建,操作方法如下: 在DOS窗口中进入Android SDK安装路径的tools目录, 输入以下命令创建一张容量为2 GB的SD卡(文件后缀可以随 便取,建议使用.img): mksdcard 2048M D:\AndroidTool\sdcard.img

android 培训计划

android 培训计划

android 培训计划一、培训计划背景Android是目前世界上用户最多的手机操作系统之一,它在全球市场占有率逐渐上升。

作为一名Android开发人员,掌握Android开发技术,不仅可以在手机应用开发领域得到广泛应用,还可以为个人或企业带来丰厚的收益。

因此,对于想要从事Android开发的人员来说,进行一定的培训是非常有必要的。

二、培训目标通过本次Android培训,学员将掌握以下技能:1. Android开发基础知识;2. Android界面设计;3. Android应用开发流程;4. Android数据存储和访问;5. Android网络编程;6. Android性能优化。

三、培训内容1. Android开发基础知识(1)Android平台介绍(2)Android应用程序的基本结构(3)Android应用组件(4)Android应用的工作原理(5)Android开发环境搭建2. Android界面设计(1)Android布局管理(2)Android控件使用(3)Android界面的事件处理(4)Android资源管理3. Android应用开发流程(1)Android应用的生命周期管理(2)Android应用的调试与测试(3)Android应用的发布与分发4. Android数据存储和访问(1)Android数据存储方式(2)Android SQLite数据库的使用(3)Android文件存储与读取5. Android网络编程(1)Android网络通信的基础知识(2)Android网络编程的实现(3)Android异步任务处理6. Android性能优化(1)Android应用的性能测试与优化(2)Android应用内存管理(3)Android应用的安全性保障四、培训方式本次Android培训将采用以下方式进行:1. 理论讲解:由资深Android开发工程师进行线上授课,讲解Android开发的基础知识和实际开发技巧。

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(): 开始⼀个事务。

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

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

一、引言在当今移动互联网时代,Android系统已经成为最重要的移动操作系统之一。

作为Android开发者,数据存储和访问是必不可少的技术领域。

本文将详细介绍Android开发中的数据存储和访问方法,帮助读者更好地理解和应用这些技术。

二、内部存储内部存储是指应用程序在设备上的私有存储空间。

在Android中,每个应用都有一个私有的内部存储空间,其他应用无法访问,确保了数据的安全性。

我们常用的方法有文件存储和SharedPreferences两种。

文件存储是将数据以文件的形式保存在设备上。

开发者可以通过Java的File和FileOutputStream来实现文件的读写操作。

当需要保存少量简单数据时,可以使用SharedPreferences,它是一种键值对的存储方式,非常方便快捷。

三、外部存储外部存储是指设备上的公共存储空间,可以被所有应用访问到。

Android系统提供了一些方法来操作外部存储,如读写SD卡上的文件。

外部存储的主要优点是容量大,但相对来说对数据的安全性和隐私保护较差。

在Android开发中,我们可以通过File类来操作外部存储。

首先需要获取外部存储的状态,确认是否有可用的外部存储空间,并声明文件的写入权限。

然后可以使用FileOutputStream来将数据写入外部存储。

四、数据库数据库是Android开发中常用的数据存储和访问方式。

Android系统内置了SQLite数据库,开发者可以通过SQLiteOpenHelper类来创建、打开和管理数据库。

SQLite是一种轻量级的数据库引擎,非常适用于移动设备。

在使用数据库之前,首先需要创建数据库表和定义数据结构。

通过创建一个继承自SQLiteOpenHelper的子类,可以实现数据库的创建和版本管理等功能。

然后可以使用SQLiteDatabase类来执行增删改查等操作。

通过使用SQLite数据库,开发者可以更高效地存储和管理大量结构化数据。

Android数据存储方式有哪几种

Android数据存储方式有哪几种

Android数据存储⽅式有哪⼏种以下内容给⼤家介绍Android数据存储提供了五种⽅式:1、SharedPreferences2、⽂件存储3、SQLite数据库4、ContentProvider5、⽹络存储 本⽂主要介绍如何使⽤⽂件来存储数据。

Android⽂件操作⽤到的是Java.IO中的FileOutputStream和FileInputStream类。

⼀、存储⽂件 ⾸先实例化⼀个FileOutputStream。

FileOutputStream foStream = openFileOutput(fileName, MODE_PRIVATE);// fileName: 要写⼊⽂件的名称// MODE_PRIVATE: 为默认操作模式,代表该⽂件是私有数据,只能被应⽤本⾝访问,在该模式下,写⼊的内容会覆盖原⽂件的内容// MODE_APPEND: 模式会检查⽂件是否存在,存在就往⽂件追加内容,否则就创建新⽂件.// MODE_WORLD_READABLE: 表⽰当前⽂件可以被其他应⽤读取,不推荐使⽤// MODE_WORLD_WRITEABLE: 表⽰当前⽂件可以被其他应⽤写⼊,不推荐使⽤ 然后调⽤foStream.write()即可完成写⼊。

byte[] buffer = fileContent.getBytes();foStream.write(buffer);Toast.makeText(MainActivity.this, "写⼊成功",Toast.LENGTH_SHORT).show(); 最后进⾏⼀些清理⼯作,刷新写出流和关闭流。

foStream.flush();foStream.close();⼆、读取⽂件 同样的,⾸先实例化⼀个FileInputStream。

FileInputStream fiStream = openFileInput(fileName) 然后调⽤fiStream.read()即可int len = fiStream.available();byte[] buffer = new byte[len];fiStream.read(buffer) 最后,将⽂本显⽰并关闭读⽂件流etContent.setText(new String(buffer));Toast.makeText(MainActivity.this, "读取成功",Toast.LENGTH_SHORT).show();fiStream.close();三、完整代码import android.support.v.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import java.io.FileInputStream;import java.io.FileOutputStream;public class MainActivity extends AppCompatActivity {private EditText etName;private EditText etContent;private Button btnWrite;private Button btnRead;private String fileName = "";private String fileContent = "";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);etName = (EditText)findViewById(R.id.etName);etContent = (EditText)findViewById(R.id.etContent);btnWrite = (Button)findViewById(R.id.btnWrite);btnRead = (Button)findViewById(R.id.btnRead);btnWrite.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {fileName = etName.getText().toString();fileContent = etContent.getText().toString();try {FileOutputStream foStream = openFileOutput(fileName, MODE_PRIVATE);byte[] buffer = fileContent.getBytes();foStream.write(buffer);Toast.makeText(MainActivity.this, "写⼊成功",Toast.LENGTH_SHORT).show();foStream.flush();foStream.close();}catch(Exception e){e.printStackTrace();}}});btnRead.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {fileName = etName.getText().toString();try{FileInputStream fiStream = openFileInput(fileName);int len = fiStream.available();byte[] buffer = new byte[len];fiStream.read(buffer);etContent.setText(new String(buffer));Toast.makeText(MainActivity.this, "读取成功",Toast.LENGTH_SHORT).show();fiStream.close();}catch(Exception e){e.printStackTrace();}}});}}<RelativeLayout xmlns:android="/apk/res/android"xmlns:tools="/tools" android:layout_width="match_parent"android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"><EditTextandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/etName"android:layout_alignParentTop="true"android:layout_alignParentLeft="true"android:layout_alignParentStart="true"android:layout_alignParentRight="true"android:layout_alignParentEnd="true"android:text="⽂件名" /><EditTextandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/etContent"android:layout_below="@+id/etName"android:layout_alignParentLeft="true"android:layout_alignParentStart="true"android:layout_alignParentRight="true"android:layout_alignParentEnd="true"android:text="⽂件内容" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="保存"android:id="@+id/btnWrite"android:layout_alignTop="@+id/btnRead"android:layout_toLeftOf="@+id/btnRead"android:layout_toStartOf="@+id/btnRead" /> <Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="读取"android:id="@+id/btnRead"android:layout_below="@+id/etContent"android:layout_alignParentRight="true"android:layout_alignParentEnd="true" /></RelativeLayout>。

百一测评——计算机网络应用基础-android模拟试题 010 (2)

百一测评——计算机网络应用基础-android模拟试题 010 (2)

职业技能题库&在线云笔试平台 试卷名称:计算机网络应用基础-android模拟试题 009试卷描述:【在线考试】、【招聘考试】、【android笔试题】、【微信考试】试卷使用说明:将试卷导入到-->生成试卷二维码 --> 学生扫码练习 --> 自动排名。

也可查看分数,巩固知识后重答。

更多试卷,请访问百一测评网。

点击链接PC端开始考试:/cand/index?paperId=69KJ6L点击链接微信wechat端开始考试:/cand/index?paperId=69KJ6L&dev_type=m试卷限时:40分钟一.单选题每题分值:2分是否题目乱序:是是否选项乱序:是是否可回溯:是1.[单选]退出activity 对一些资源以及状态的操作保存,可以在生命周期的哪个函数中进行___A.onPause()B.onCreate()C.onResume()D.onStart()答案:A职业技能题库&在线云笔试平台2.[单选]Android 项目工程下面的assets 目录的作用是什么____A.放置应用到的图片资源。

Res/drawableB.主要放置一些文件资源.这些文件会被原封不动打包到apk 里面C.放置字符串,颜色,数组等常量数据res/valuesD.放置一些与UI 相应的布局文件,都是xml 文件res/layout答案:B3.[单选]下列不属于android布局的是___A.FrameLayoutB.LinearLayoutC.BorderLayoutD.TableLayoutE.RelativeLayout答案:C4.[单选]Intent 的作用的是____A.intent是连接四大组件的纽带.可以实现界面间切换,可以包含动作和动作数据,B.是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失serviceC.实现应用程序间的数据共享contentproviderD.处理一个应用程序整体性的工作答案:A5.[单选]下列哪个是AbsoluteLayout中特有的属性____职业技能题库&在线云笔试平台A.android:layout_heightB.android:layout_xC.android:layout_aboveD.android:layout_toRightOf答案:B6.[单选]RatingBar组件中不能用属性直接设置的是_____A.五角星个数B.当前分数C.分数的增量D.五角星的色彩答案:D7.[单选]在手机开发中常用的数据库是_____A.sqlLiteB.OracleC.Sql ServerD.Db23答案:A8.[单选]关于BroadcastReceiver的说法不正确的是____A.是用来接收广播Intent的B.一个广播Intent只能被一个订阅了此广播的BroadcastReceiver所接收C.对有序广播,系统会根据接收者声明的优先级别按顺序逐个执行接收者职业技能题库&在线云笔试平台 D.接收者声明的优先级别在<intent-filter>的android:priority属性中声明,数值越大优先级别越高答案:B9.[单选]使用MediaPlayer播放保存在sdcard上的mp3文件时____A.需要使用MediaPlayer.create方法创建MediaPlayerB.直接newMediaPlayer即可C.需要调用setDataSource方法设置文件源D.直接调用start方法,无需设置文件源答案:C10.[单选]在android中使用RadioButton时,要想实现互斥的选择需要用的组件是___A.ButtonGroupB.RadioButtonsC.CheckBoxD.RadioGroup答案:D11.[单选]在多个应用中读取共享存储数据时,需要用到的query方法,是哪个对象的方法?______A.ContentResolverB.ContentProviderC.CursorD. SQLiteHelper答案:A职业技能题库&在线云笔试平台12.[单选]DDMS中Log信息分为几个级别____A.3B.4C.5D.6答案:C13.[单选]能够自动完成输入内容的组件是___A.TextViewB.EditTextC.ImageViewD.AutoCompleteTextView答案:D14.[单选]创建子菜单的方法是___A.addB.addSubMenuC.createSubMenuD.createMenu答案:B15.[单选]使用AIDL完成远程service方法调用下列说法不正确的是__A.aidl对应的接口名称不能与aidl文件名相同B.aidl的文件的内容类似java代码职业技能题库&在线云笔试平台C.创建一个Service(服务),在服务的onBind(Intent intent)方法中返回实现了aidl接口的对象D.aidl对应的接口的方法前面不能加访问权限修饰符答案:A16.[单选]MediaPlayer播放资源前,需要调用哪个方法完成准备工作____A.setDataSourceB.prepareC.beginD.pause答案:B17.[单选]处理菜单项单击事件的方法不包含____A.使用onOptionsItemSelected(MenuItem item)响应B.使用onMenuItemSelected(int featureId .MenuItem item) 响应C.使用onMenuItemClick(MenuItem item) 响应D.使用onCreateOptionsMenu(Menu menu)响应答案:D18.[单选]android中文件操作模式中表示只能被本应用使用,写入文件会覆盖的是___A.MODE_APPENDB.MODE_WORLD_READABLEC.MODE_WORLD_WRITEABLED.MODE_PRIVATE答案:D职业技能题库&在线云笔试平台19.[单选]进度条中哪个属性是设置进度条大小格式的_d_A.android:secondaryProgressB.android:progressC.android:maxD.style答案:D20.[单选]下列用以显示一系列图像的是_b_A.ImageViewB.GalleryC.ImageSwitcherD.GridView答案:B21.[单选]表示下拉列表的组件是___A.GalleryB.SpinnerC.GridViewD.ListView答案:B22.[单选]关于AlertDialog的说法不正确的是__A.要想使用对话框首先要使用new关键字创建AlertDialog的实例B.对话框的显示需要调用show方法职业技能题库&在线云笔试平台C.setPositiveButton方法是用来加确定按钮的D.setNegativeButton方法是用来加取消按钮的答案:A23.[单选]下列说法错误的是____A.Button是普通按钮组件,除此外还有其他的按钮组件B.TextView是显示文本的组件,TextView是EditText的父类C.EditText是编辑文本的组件,可以使用EditText输入特定的字符D.ImageView是显示图片的组件,可以通过设置显示局部图片答案:D24.[单选]关于android中播放视频的说法不对的是___A.可以使用SurfaceView组件播视频B.可以使用VideoView组件播视频C.VideoView组件可以控制播放的位置和大小D.VideoView播放视频的格式可以是3gp答案:C25.[单选]下列哪个是SqlLite下的命令__A.shellB.pushC..quitD.keytool答案:C职业技能题库&在线云笔试平台26.[单选]D15EA1082下列关于如何使用Notification,不对的是__A.notification需要NotificatinManager来管理B.使用NotificationManager的notify方法显示notification消息C.在显示Notification时可以设置通知时的默认发声,震动等D.Notification中有方法可以清除消息答案:D27.[单选]下列关于open core说法不正确的是___A.Open core是Android多媒体框架的核心B.MediaPlayer是open Core中的一个核心类C.所有在Android平台的音频.视频的采集以及播放等操作都是通过它来实现的D.在实现开发中我们并不会过多地研究open core的实现,我们的Android为我们提供了上层的media api的开发使用答案:B28.[单选]上下文菜单与其他菜单不同的是____A.上下文菜单项上的单击事件可以使用onMenuItemSelected方法来响应B.上下文菜单必须注册到指定的view上才能显示C.上下文菜单的菜单项可以添加,可以删除D.上下文菜单的菜单项可以有子项答案:B29.[单选]拖动条组件是__A.RatingBar职业技能题库&在线云笔试平台B.ProgressBarC.SeekBarD.ScrollBar答案:C30.[单选]读取文件内容的首要方法是___A.openFileOutputB.readC.writeD.openFileInput答案:D31.[单选]关于隐式Intent正确的是__A.android中使用IntentFilter 来寻找与隐式Intent相关的对象B.通过组件的名称寻找与intent相关联的对象C.隐式Intent更多用于在应用程序内部传递消息D.一个声明了IntentFilter的组件只能响应隐式Intent请求答案:A32.[单选]D05MA2088 多选框被选择事件通常用____A.setOnClickListenerB.setOnCheckChangeListenerC.setOnMenuItemSelectedListenerD.setOnCheckedListener职业技能题库&在线云笔试平台 答案:B33.[单选]D12EA1089自定义对话框时,将视图对象添加到当前对话框的方法是__A.setIconB.setXMLC.setLayoutD.setView答案:D34.[单选]D09MA2090 下列不属于service生命周期的方法是__A.onCreateB.onDestroyC.onStopD.onStart答案:C35.[单选]D09MA2091 绑定Service的方法是___A.bindServiceB.startServiceC.onStartD.onBind答案:A职业技能题库&在线云笔试平台 二.多选题每题分值:2分是否题目乱序:是是否选项乱序:是是否可回溯:是36.[多选]Intent 传递数据时,下列的数据类型哪些可以被传递____A.SerializableB.charsequenceC.ParcelableD.Bundle答案:ABCD37.[多选].android 数据存储与访问的方式一下说法正确的是____A.文件B.数据库C.sharedpreferenceD.内容提供者E.网络答案:ABCDE38.[多选]下列可能会导致GC内存泄露的是:______A.数据库的cursor没有关闭B.构造adapter时.没有使用缓存contentview职业技能题库&在线云笔试平台C.衍生listview的优化问题-----减少创建view的对象.充分使用contentview.D.使用sqlite数据库答案:ABC39.[多选] android 通过startService 的方式开启服务.关于service 生命周期的onCreate()和onStart() 说法正确的是___A.当第一次启动的时候先后调用onCreate()和onStart()方法B.当第一次启动的时候只会调用onCreate()方法C.如果service 已经启动,将先后调用onCreate()和onStart()方法D.如果service 已经启动,只会执行onStart()方法,不在执行onCreate()方法答案:AD40.[多选]D02MB2096开发android程序需要的开发工具和开发包包括___A.JDKB.EclipseC.Android SDKD.ADTE.Raw答案:ABCD41.[多选]D18MB2097 下列属于补间动画相关类的是___A.TranslateAnimationB.FrameAnimationC.RotateAnimation职业技能题库&在线云笔试平台 D.AlphaAnimation答案:ACD42.[多选]D13MB2098 下列哪些api 的操作需要声明权限__A.播放mp3 文件B.读SD 卡(读sd 卡状态)C.发短信D.访问网络答案:CD43.[多选]4.在android 中使用SQLiteOpenHelper 这个辅助类时,哪些操作可能生成一个数据库.A.getWriteableDatabase()B.getReadableDatabase()C.getDatabase()D.getAbleDatabase()答案:AB44.[多选]下列对SharePreferences存.取文件的说法中正确的是:abdA.属于移动存储解决方案B.sharePreferences处理的就是key-value对C.读取xml文件的路径是/sdcard/shared_prefxD.信息的保存格式是xml答案:ABD职业技能题库&在线云笔试平台45.[多选]NotificationManager中清除消息的方法是bdA.destroyB.cancelC.clearD.cancelAll答案:BD三.填空题每题分值:2分是否题目乱序:是是否选项乱序:是是否可回溯:是46.[填空]当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity来执行的回调函数是____填空数:1参考答案:startActivityResult()答案形式:完全一致47.[填空] android中输入日期的组件是___填空数:1参考答案:DatePicker答案形式:完全一致48.[填空] AIDL的全称是___职业技能题库&在线云笔试平台 填空数:1参考答案:Android interface definition language答案形式:完全一致49.[填空] 广播分为__________填空数:1参考答案:无序广播和有序广播答案形式:完全一致50.[填空] android中输入时间的组件是______填空数:1参考答案:TimePicker答案形式:完全一致51.[填空]Android应用的入口点是______填空数:1参考答案:Main答案形式:完全一致52.[填空] android中专门用于录音的组件是____填空数:1参考答案:MediaRecorder答案形式:完全一致53.[填空]动画中有一种____动画,通过顺序的播放排列好的图片来实现,类似电影。

Android本地存储

Android本地存储
数据库存储
使用SQLite数据库进行结构化数据存储。适用于需要高效查询和检索的数据,如应用程序 设置、用户信息等。
SharedPreferences存储
使用Android的SharedPreferences类进行轻量级数据存储。适用于存储较小的数据,如 应用程序配置、用户状态等。
本地存储的重要性
用户体验
SQLite与Java的关系
Android开发中,SQLite数据库的创建、升级、查询等操作通常使用Java语言实现。 Java提供了SQLite的API接口,开发者可以通过Java来操作SQLite数据库。 在Android应用开发中,SQLite数据库的交互通常通过Java代码实现。
04
Content Provider
获取文件目录。
可以设置访问权限,使得其他 应用可以访问。
SharedPreferences
01
轻量级的数据存储方式,主要 用于存储一些基本类型的数据 。
02
数据以键值对形式存储,只能 存储基本类rences.Editor对 象进行数据的读取和写入操作 。
由于数据存储在本地,读取和写入数据的速度会 更快。
不受网络限制
在没有网络的情况下,本地存储的数据仍然可以 访问,而云端存储则需要网络连接。
本地存储的缺点
空间限制
本地存储空间有限,不能像云存储一样无限扩展。
数据难以共享
本地存储的数据难以与他人共享,而云端存储则可以通过链接、 共享等方式方便地共享数据。
Content Provider的创建
01
创建步骤
02
1. 定义数据模型:确定要共享的数据类型和结构。
03
2. 实现 Content Provider:继承 Android 的 ContentProvider 类,并重写其 中的方法,包括 insert、delete、update、query 等。

安卓基础判断题

安卓基础判断题

以下是关于安卓基础的判断题:
1.Android系统最初由哪家公司开发?答案:Google。

2.Android系统的版本号命名方式是什么?答案:按字母表顺序命名,每个版
本代号以甜点或糖果为主题。

3.Android系统是基于哪种编程语言开发的?答案:Java。

4.安卓系统中最常用的布局是什么?答案:线性布局(LinearLayout)。

5.安卓应用程序可以使用哪些编程语言进行开发?答案:Java、Kotlin等。

6.在Android系统中,如何实现两个Activity之间的数据传递?答案:使用Intent
对象传递数据。

7.安卓应用程序中,如何处理用户交互事件?答案:使用事件监听器进行处
理,例如OnClickListener、OnLongClickListener等。

8.安卓应用程序中,如何存储和访问数据?答案:可以使用SharedPreferences、
SQLite数据库、文件等方式进行数据存储和访问。

9.安卓系统中,如何实现多线程编程?答案:可以使用Thread类或者AsyncTask
类等方式实现多线程编程。

10.安卓应用程序如何与网络进行通信?答案:可以使用HttpURLConnection、
OkHttp、Volley等网络库进行网络通信。

Android移动开发基础教程 第5章 数据存储

Android移动开发基础教程 第5章 数据存储
Android开发基础知识入门
第5章 数据存储
5.1 SharedPreferences 5.2 file存储 5.3 SQLite数据库
Android开发基础知识入门
第5章 数据存储
5.1 SharedPreferences
对于所有的应用程序而言,必然会产生数据的存储和读写。
例如,手机游戏可以保存用户当前玩到的关卡和分数,音乐播放器或视频播放软件会记录用户的使用习惯,这些配 置在用户关机重启之后仍然会保存,说明数据都保存在了文件中。
Android开发基础知识入门
第5章 数据存储
5.2 file存储
读写外部存储
一般情况下,手机的内部存储空间有限,如果需要读写大文件数据,Android提供了相关访问外部存储的方法。 读写外部存储需要在AndroidManifest.xml文件中配置权限。
读写外部存储步骤一般如下: (1)调用Environment的getExternalStorageState()方法判读外部存储设备是否可用,如果外部存储设备可读写,则: Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)返回true。 (2)调用Environment的 getExternalStorageDirectory()方法获取外部存储器的目录。 (3)使用FileInputStream、FileOutpuStream、FileWriter、FileReader等流操作文件读写外部存储上的文件。
Android开发基础知识入门
第5章 数据存储
5.2 file存储
读写内部存储
在开发中,可以将文件直接保存在设备的内部存储中。默认地,保存在内部存储中的文件是私有的,其他程序没 有权限访问该文件。当本应用被卸载时,这些内部存储的文件也会被移除。内部存储的文件通过IO流实现读写。

android数据存储实验总结

android数据存储实验总结

android数据存储实验总结一、实验介绍Android数据存储实验是在Android Studio开发环境下,利用SharedPreferences,SQLite和File三种API实现Android应用程序的数据存储,实现具有添加、查询、删除等功能的Android应用程序。

实验帮助了解Android中三种数据存储:SharedPreferences、SQLite 以及File三种存储方式的实际应用。

二、实验步骤1、创建Android工程使用Android Studio创建一个新的Android工程,并命名为MyDataStorage。

2、编写布局文件编写主页面的布局文件,通过ListView展示数据,添加EditText 用于输入数据,以及添加Button用于添加数据。

3、实现SharedPreferences存储创建一个SharedPreferences对象,调用edit()方法获得一个Editor对象,用来向SharedPreferences写入数据,通过getString()方法从SharedPreferences中读取数据。

4、实现SQLite数据库存储使用SQLiteOpenHelper类创建、管理数据库,调用SQLiteDatabase对象的execSQL()方法创建表格,调用SQLiteDatabase对象的insert()方法向表格插入数据;调用SQLiteDatabase对象的query()方法查询数据,调用SQLiteDatabase 对象的delete()方法删除数据。

5、实现文件存储创建一个文件对象,打开文件,使用PrintWriter写数据,使用BufferedReader读取数据。

三、实验结果通过本次实验,我学习了三种Android数据存储的方式:SharedPreferences、SQLite和File,并使用这三种方式实现了一个Android应用程序的数据存储。

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

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

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

无论是临时变量,用户设置,还是应用程序的数据,我们都需要有效地管理和处理这些数据。

本文将详细介绍Android开发中常用的数据存储和访问方法。

一、Shared Preferences(共享偏好设置)Shared Preferences是Android提供的一种轻量级的数据存储方式,适用于简单的键值对数据。

通过Shared Preferences可以有效地存储用户的设置信息,如语言偏好、主题颜色等。

使用Shared Preferences时,需要先获取一个SharedPreferences对象,然后通过该对象对数据进行读写操作。

SharedPreferences提供了一系列的putXXX()和getXXX()方法,可以方便地存储和读取各种类型的数据。

二、Internal Storage(内部存储)Internal Storage是Android中应用程序的私有存储空间,存储在设备的内部存储中。

这种存储方式适用于一些敏感的数据,只有应用程序本身可以访问到这些数据。

使用Internal Storage时,可以通过Context类提供的openFileOutput()和openFileInput()方法对文件进行读写操作。

在应用程序被卸载时,Internal Storage中的数据也会被删除。

三、External Storage(外部存储)External Storage是指设备上的公共存储空间,如SD卡。

它适用于存储一些大型文件、缓存数据以及与其他应用程序共享数据。

在使用External Storage之前,需要在文件中添加相应的权限声明。

通过Environment类提供的getExternalStorageDirectory()方法可以获取外部存储的根目录,然后可以通过File类进行具体的文件操作。

四、SQLite数据库SQLite数据库是一种轻量级的关系型数据库,适用于存储结构化数据。

(完整版)Android课后习题答案整理

(完整版)Android课后习题答案整理

第一章 Android简介1.简述各种手机操作系统的特点.答案:目前,手机上的操作系统主要包括以下几种,分别是Android、iOS、Windows Mobile、Windows Phone 7、Symbian、黑莓、PalmOS和Linux。

(1)Android是谷歌发布的基于Linux的开源手机平台,该平台由操作系统、中间件、用户界面和应用软件组成,是第一个可以完全定制、免费、开放的手机平台。

Android底层使用开源的Linux 操作系统,同时开放了应用程序开发工具,使所有程序开发人员都在统一、开放的开发平台上进行开发,保证了Android应用程序的可移植性。

(2)iOS是由苹果公司为iPhone、iPod touch、iPad以及Apple TV开发的操作系统,以开放源代码的操作系统Darwin为基础,提供了SDK,iOS操作系统具有多点触摸操作的特点,支持的控制方法包括滑动、轻按、挤压和旋转, 允许系统界面根据屏幕的方向而改变方向,自带大量的应用程序。

(3)Windows Mobile是微软推出的移动设备操作系统,对硬件配置要求较高,一般需要使用高主频的嵌入式处理器,从而产生了耗电量大、电池续航时间短和硬件成本高等缺点,Windows Mobile 系列操作系统包括Smartphone、Pocket PC和Portable Media Center。

随着Windows Phone 7的出现,Windows Mobile正逐渐走出历史舞台。

(4)Windows Phone 7具有独特的“方格子”用户界面,非常简洁,黑色背景下的亮蓝色方形图标,显得十分清晰醒目,集成了Xbox Live游戏和Zune音乐功能,可见Windows Phone 7对游戏功能和社交功能的重视。

(5)Symbian是为手机而设计的实时多任务32位操作系统,它的功效低,内存占用少,提供了开发使用的函数库、用户界面、通用工具和参考示例。

移动开发初级面试题目(3篇)

移动开发初级面试题目(3篇)

第1篇一、基础知识1. 请简要介绍移动开发的基本概念。

解析:移动开发是指针对移动设备(如智能手机、平板电脑等)进行的软件开发。

它涉及移动操作系统(如Android、iOS等)的开发技术、应用开发流程以及移动设备的特点。

2. 请列举几种常见的移动操作系统。

解析:常见的移动操作系统包括Android、iOS、Windows Phone、BlackBerry OS 等。

3. 什么是Android操作系统?请简述其特点。

解析:Android是由Google开发的一种基于Linux内核的开放源代码操作系统。

其特点包括:(1)开源:Android源代码公开,开发者可以自由修改和分发。

(2)跨平台:支持多种硬件平台,如ARM、x86等。

(3)丰富的API:提供丰富的API支持,方便开发者进行开发。

(4)强大的社区:拥有庞大的开发者社区,提供丰富的开发资源和经验分享。

4. 请简述iOS操作系统的特点。

解析:iOS是由Apple公司开发的一种闭源操作系统,主要用于iPhone、iPad和iPod touch等设备。

其特点包括:(1)流畅的用户体验:iOS系统注重用户体验,操作流畅。

(2)丰富的应用生态:App Store提供了海量的应用程序。

(3)强大的硬件优化:iOS系统与Apple硬件深度结合,优化性能。

(4)封闭的生态系统:iOS系统生态相对封闭,保证了安全性和稳定性。

5. 请解释什么是原生应用和混合应用。

解析:原生应用是指专门为某个平台(如Android或iOS)开发的独立应用程序,具有最佳的用户体验和性能。

混合应用是指结合了原生应用和Web应用的技术,可以在多个平台上运行。

6. 请简要介绍移动开发的主要技术栈。

解析:移动开发的主要技术栈包括:(1)前端技术:HTML、CSS、JavaScript等。

(2)移动操作系统:Android、iOS等。

(3)开发工具:Android Studio、Xcode等。

数据存储五种方式

数据存储五种方式

Andorid五种数据存储方式:本文介绍Android平台进行数据存储的五大方式,分别如下:1 使用SharedPreferences存储数据2 文件存储数据3 SQLite数据库存储数据4 使用ContentProvider存储数据5 网络存储数据下面详细讲解这五种方式的特点第一种:使用SharedPreferences存储数据共享参数适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。

比如应用程序的各种配置信息(如是否打开音效、是否使用震动效果、小游戏的玩家积分等),解锁口令密码等核心原理:保存基于XML文件存储的key-value键值对数据,通常用来存储一些简单的配置信息。

通过DDMS的File Explorer面板,展开文件浏览树,很明显SharedPreferences 数据总是存储在/data/data/<package name>/shared_prefs目录下。

SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过SharedPreferences.edit()获取的内部接口Editor对象实现。

SharedPreferences本身是一个接口,程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name, int mode)方法来获取SharedPreferences实例,该方法中name表示要操作的xml文件名,第二个参数具体如下:Context.MODE_PRIVATE: 指定该SharedPreferences数据只能被本应用程序读、写。

Context.MODE_WORLD_READABLE: 指定该SharedPreferences数据能被其他应用程序读,但不能写。

Context.MODE_WORLD_WRITEABLE: 指定该SharedPreferences数据能被其他应用程序读,写Editor有如下主要重要方法:SharedPreferences.Editor clear():清空SharedPreferences里所有数据SharedPreferences.Editor putXxx(String key , xxx value): 向SharedPreferences存入指定key对应的数据,其中xxx 可以是boolean,float,int等各种基本类型据SharedPreferences.Editor remove(): 删除SharedPreferences中指定key对应的数据项boolean commit(): 当Editor编辑完成后,使用该方法提交修改实际案例:运行界面如下这里只提供了两个按钮和一个输入文本框,布局简单,故在此不给出界面布局文件了,程序核心代码如下:class ViewOcl implements View.OnClickListener{@Overridepublic void onClick(View v) {switch(v.getId()){case R.id.btnSet://步骤1:获取输入值String code = txtCode.getText().toString().trim();//步骤2-1:创建一个SharedPreferences.Editor接口对象,lock表示要写入的XML文件名,MODE_WORLD_WRITEABLE写操作SharedPreferences.Editor editor = getSharedPreferences("lock", MODE_WORLD_WRITEABLE).edit();//步骤2-2:将获取过来的值放入文件editor.putString("code", code);//步骤3:提交mit();Toast.makeText(getApplicationContext(), "口令设置成功", Toast.LENGTH_LONG).show();break;case R.id.btnGet://步骤1:创建一个SharedPreferences接口对象SharedPreferences read = getSharedPreferences("lock", MODE_WORLD_READABLE);//步骤2:获取文件中的值String value = read.getString("code", "");Toast.makeText(getApplicationContext(), "口令为:"+value, Toast.LENGTH_LONG).show();break;}}}读写其他应用的SharedPreferences: 步骤如下1、在创建SharedPreferences时,指定MODE_WORLD_READABLE模式,表明该SharedPreferences数据可以被其他程序读取2、创建其他应用程序对应的Context:Context pvCount = createPackageContext("com.tony.app", Context.CONTEXT_IGNORE_SECURITY);这里的com.tony.app就是其他程序的包名3、使用其他程序的Context获取对应的SharedPreferencesSharedPreferences read = pvCount.getSharedPreferences("lock", Context.MODE_WORLD_READABLE);4、如果是写入数据,使用Editor接口即可,所有其他操作均和前面一致。

  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题所建立的数据库;四:实验代码Internalpublic class Internal extends Activity {private final String = "";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) {fos = null;try {if (appendBox.isChecked()){fos = open(,Context.MODE_APPEND);}else {fos = open(,Context.MODE_PRIVATE);}String text = entryText.getText().toString();fos.write(text.getBytes());labelView.setText("文件写入成功,写入长度:"+text.length());entryText.setText("");} catch ( 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("");fis = null;try {fis = open();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 ( 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)+"条");}}};}。

相关文档
最新文档