这篇文章总字数为:15882 字,有 0 张图存于本站服务器
这个做个记录,给下届学弟学妹存个档,前人栽树,后人乘凉。
文章底部可下载word
移动增值业务开发期末复习题
一、 单选题
1、Android 项目工程下面的 assets 目录的作用是什么
A、 放置应用到的图片资源。 Res/drawable
B、 主要放置一些文件资源,这些文件会被原封不动打包到 apk 里面
C、 放置字符串,颜色,数组等常量数据 res/values
D、 放置一些与 UI 相应的布局文件,都是 xml 文件res/layout
正确答案: B
解析:
2、android中完成模拟器文件与计算机文件的相互复制以及安装应用程序的命令是()
A、 adb
B、 android
C、 avd
D、 emulator
正确答案: A
解析:
3、android系统中安装的应用软件是()格式的
A、 exe
B、 java
C、 apk
D、 jar
正确答案: C
解析:
4、以下关于Android应用程序的目录结构描述中,不正确的是?
A、 src目录是应用程序的主要目录,由Java类文件文件组成
B、 assets目录是原始资源目录,该目录中的内容将不会被R类所引用
C、 res目录是应用资源目录,该目录中的所有资源内容都会被R类所索引
D、 AndroidManifest.xml文件是应用程序目录清单文件,该文件由ADT自动生成,不需要程序员手动修改
正确答案: D
解析:
5、下列选项中不属于Android体系结构的是。
A、 应用程序层
B、 应用程序框架层
C、 核心类库
D、 WindowManager
正确答案: D
解析:
6、Android中的布局文件位于【 】目录中。
A、 res/layout
B、 res/raw
正确答案: A
解析:
7、下列( )属性可做EditText 编辑框的提示信息
A、 android:inputType
B、 android:text
C、 android:digits
D、 androtd:hint
正确答案: D
解析:
8、相对布局中,“是否跟父布局底部对齐”是属性( )
A、 android:layout_alignBottom
B、 android:layout_alignParentBottom
C、 android:layout_alignBaseline
D、 android:layout_below
正确答案: B
解析:
9、在下列选项中,设置GridLayout中的某控件占3行的是( )。
A、 android:rowSpan="3"
B、 android:layout_rowSpan="3"
C、 android:layout_columnSpan="3"
D、 android:layout_column="3"
正确答案: B
解析:
10、下列关于Android布局文件常用的长度/大小单位的描述中,不正确的是?( )
A、 dp是设备独立像素,不依赖于设备,是最常用的长度单位
B、 sp代表放大像素,主要用于字体大小的显示
C、 px是像素单位,在不同的设备上显示效果相同,因此推荐在布局中使用该单位
D、 在设置空间长度等相对距离时,推荐使用dp单位,该单位随设备密度的变化而变化
正确答案: C
解析:
11、在下列选项中,设置线性布局方向的属性是( )。
A、 orientation
B、 gravity
C、 layout_gravity
D、 padding
正确答案: A
解析:
12、Android UI开发中,TableLayout的stretchColumns属性表示( )。
A、 TableLayout的列数
B、 TableLayout的行数
C、 TableLayout最多能加入的列数
D、 拉伸指定列填充满TableLayout
正确答案: D
解析:
13、假设手机屏幕宽度为400px,现采取水平线性布局放置5个按钮,设定每个按钮的宽度为100px,那么该程序运行时,界面显示效果为( )
A、 自动添加水平滚动条,拖动滚动条可查看5个按钮
B、 只可以看到4 个按钮,超出屏幕宽度部分无法显示
C、 按钮宽度自动缩小,可看到5 个按钮
D、 程序运行出错,无法显示
正确答案: B
解析:
14、表格布局中,设置某一列是可扩展的正确的做法是( )
A、 设置TableLayout的属性:android:stretchcolumns=“x”,x表示列的序号
B、 设置TableLayout的属性:androld:shrinkcolumns=“x” ,x表示列的序号C) 设置具体列的属性:android:stretchable=“true”
C、 设置具体列的属性:android:stretchable=“true”
D、 设置具体列的属性:androld:shrinkable=“ true”
正确答案: A
解析:
15、一个应用程序默认会包含( )个Activity。
A、 1
B、 2
C、 3
D、 4
正确答案: A
解析:
16、下列组件中,不能使用Intent启动的是()。
A、 Activity
B、 启动服务
C、 广播
D、 内容提供者
正确答案: D
解析:
17、下列关于Activity的描述,错误的是( )
A、 Activity是Android的四大组件之一
B、 Activity有4种启动模式
C、 Activity通常用于开启一个广播事件
D、 Activity就像一个界面管理员,用户在界面上的操作是通过Activity来管理的
正确答案: C
解析:
18、下面退出Activity错误的方法是?( )
A、 finish()
B、 System.exit()
C、 onStop()
D、 抛异常强制退出
正确答案: B
解析:
19、在Android中通常使用()传递数据。
A、 intent
B、 Activtiy
C、 broardcast
D、 service
正确答案: A
解析:
20、下列方法中,Activity从启动到关闭不会执行的是( )。
A、 onCreate()
B、 onStart()
C、 onResume()
D、 onRestart()
正确答案: D
解析:
21、startActivityForResult()方法接收两个参数,第一个是Intent,第二个是( )。
A、 resultCode
B、 requestCode
C、 请求码
D、 data
正确答案: C
解析:
22、关于HttpURLConnection使用说法错误的是( )。
A、 HttpURLConnection对象访问网络时,需要设置超时时间。
B、 HttpURLConnection继承自Connection类。
C、 HttpURLConnection是一个标准的Java类。
D、 URLConnection类可以发送和接收任何类型和长度的数据。
正确答案: B
解析:
23、下列选项中,不属于Handler机制中的关键对象是( )。
A、 Content
B、 Handler
C、 MessageQueue
D、 Looper
正确答案: A
解析:
24、Android中线程之间传递消息使用的是( )对象。
A、 Handler
B、 Looper
正确答案: A
解析:
25、关于HttpURLConnection访问网络的基本用法,描述错误的是( )。
A、 HttpURLConnection对象需要设置请求网络的方式
B、 HttpURLConnection对象需要设置超时时间
C、 需要通过new关键字来创建HttpURLConnection对象
D、 访问网络完毕需要关闭HTTP链接
正确答案: C
解析:
26、下列通信方式中,不是Android系统提供的是( )。
A、 Socket通信
B、 HTTP通信
C、 URL通信
D、 以太网通信
正确答案: D
解析:
27、下列选项中,关于GET和POST请求方式,描述错误的是()。
A、 使用GET方式访问网络URL的长度是有限制的
B、 HTTP协议规定GET方式请求URL的长度不超过2K
C、 POST方式对URL的长度是没有限制的
D、 GET请求方式向服务器提交的参数跟在请求URL后面
正确答案: B
解析:
28、关于AIDL描述错误的是( )。
A、 AIDL全称是Android interface definition Language。
B、 AIDL出现目的是解决进程间通信。
C、 AIDL定义接口的源代码必须以.aidl结尾。
D、 AIDL语言就是Java语言的演变。
正确答案: D
解析:
29、关于服务的创建说法错误的是( )。
A、 Android中创建服务需要继承Service类。
B、 Android 中的服务需要在清单文件配置。
C、 Android 中的服务可以理解成是在后台运行且没有界面的activity。
D、 Android中的服务能做的事情完全可以开一个子线程替代。
正确答案: D
解析:
30、通过bindService方式开启服务,服务生命周期是( )。
A、 onCreate()àonStart()àonBind()àonDestroy()
B、 onCreate()àonBind()àonDestroy()
C、 onCreate()àonBind()àonUnBind()àonDestroy()
D、 onCreate()àonStart()àonBind()àonUnBind()àonDestroy()
正确答案: C
解析:
31、采用startService()方法开启服务,肯定会调用( )方法。
A、 onStart()
B、 onResume()
C、 onBind()
D、 onCreate()
正确答案: D
解析:
32、关于Service和Thread的区别说法,不正确的是( )。
A、 service默认运行在声明它的应用进程的主线程中。
B、 service里可以执行密集运算或阻塞操作。
C、 可以在Service里创建一个Thread。
D、 当有耗时或阻塞的操作时应该在其中创建一个线程。
正确答案: B
解析:
33、通过bindService()方法开启的服务,通过( )方法可以解绑服务。
A、 unbindService()
B、 onDestroy()
C、 onStop()
D、 onFinish()
正确答案: A
解析:
34、有序广播可以通过以下( )方法拦截广播。
A、 abort( )
B、 abortReceiver()
C、 Receiver()
D、 abortBroadcast()
正确答案: D
解析:
35、Android中定义广播接收者要继承( )。
A、 BroadcastReceiver
B、 BroadCast
C、 Receiver
D、 BroadCastReboot
正确答案: A
解析:
36、用于发送有序广播的方法是( )。
A、 sendOrderedBroadcast()
B、 sendBroadcast()
C、 Broadcast()
D、 sendData()
正确答案: A
解析:
37、广播是一种运用在应用程序之间( )的机制。
A、 共享数据
B、 存储消息
C、 推送数据
D、 传递消息
正确答案: D
解析:
38、关于广播的作用,说法正确的是
A、 它主要用来接收系统发布的一些消息的
B、 它可以进行耗时的操作
C、 它可以启动一个Activity
D、 它可以帮助Activity修改用户界面
正确答案: A
解析:
39、Android中用到的数据库是()
A、 SQLite
B、 SQL Server
C、 MySQL
D、 Oracel
正确答案: A
解析:
40、使用SQLiteOpenHelper的构造方法创建与数据库连接时,参数可以设置为null的是
A、 Context
B、 数据库名
C、 CursorFactory
D、 数据库版本
正确答案: C
解析:
41、自定义一个数据适配器MyAdatper,需要让它继承的类是( )。
A、 DefaultAdapter
B、 ParentAdapter
C、 BaseAdapter
D、 BasicAdapter
正确答案: C
解析:
42、在使用SQLiteOpenHelper这个类时,它的哪一个方法是用来实现版本升级之用的
A、 onCreate()
B、 onCreade()
C、 onUpdate()
D、 onUpgrade()
正确答案: D
解析:
43、在下列选项中,用来给ListView填充数据的方法是( )。
A、 setAdapter()
B、 setDefaultAdapter()
C、 setBaseAdapter()
D、 setView()
正确答案: A
解析:
44、关于 Sqlite 数据库,不正确的说法是
A、 SqliteOpenHelper类主要是用来创建数据库和更新数据库
B、 SqliteDatabase 类是用来操作数据库的
C、 在每次调用 SqliteDatabase 的getWritableDatabase() 方法时,会执行 SqliteOpenHelper 的onCreate 方法。
D、 当数据库版本发生变化时,可以自动更新数据库结构
正确答案: C
解析:
45、对于SharedPreferences的下面正确的是( )
A、 SharedPreferences pref = new SharedPreferences();
B、 Editor editor = new Editor();
C、 SharedPreferences对象用于读取和存储常用数据类型
D、 Editor对象存储数据最后都要调用commit()方法。
正确答案: D
解析:
46、关于JSON和XML说法,错误的是( )
A、 JSON的速度要远远快于XML
B、 JSON对数据的描述性比XML好
C、 JSON相对于XML来讲,数据的体积小
D、 JSON和XML同样拥有丰富的解析手段
正确答案: B
解析:
47、如果想存储一个键值对字符串,应该使用哪个类?( )
A、 ContentResolver
B、 SharedPreferences
C、 Resources
D、 ContentProvider
正确答案: B
解析:
48、在Activity中使用()方法可以打开/data/data/包名/files/a.txt文件的输出流对象。
A、 openFileInput()
B、 openFileOutput()
C、 FileOutput()
D、 FileInput()
正确答案: B
解析:
49、在下列选项中,Android中的五大存储数据方式不包括( )。
A、 文件
B、 SQLite数据库
C、 SharedPreferences
D、 Map
正确答案: D
解析:
50、如果要将程序中的私有数据分享给其他应用程序,可以使用的是( )
A、 文件存储
B、 SharedPreferences
C、 ContentProvider
D、 SQLite
正确答案: C
解析:
二、 判断题
1、使用BaseAdapter控制ListView显示多少条数据是通过getView()方法设置。×
2、gen目录是自动生成的,主要有一个R.java文件,该文件可手动修改。×
3、Service不像Activity那样,它不直接与用户进行交互,没有用户界面,能够长期在后台运行。✓
4、为了获取Activity被杀死前的状态,可以在Activity被销毁前使用onSaveInstanceState()方法保存运行状态。✓
5、Table Row必须要设置layout_width和layout_height属性。×
6、Android引入Fragment是为了让一个App可以同时适应不同屏幕尺寸的设备。✓
7、Activity从创建到进入运行态所触发的事件为:onCreate()->onResume()->onStart()。×
8、Fragment只能静态使用不能动态添加。×
9、Android UI开发中,线性布局默认为垂直显示。×
10、Android是甲骨文公司在2007的一款基于Unix平台的平板操作系统。×
11、Project目录下的.gradle文件是用于Gradle编译系统的,其版本由wrapper指定。✓
12、在Android中存储数据时,可以使用SQL Server数据库。×
13、Android辅助工具中ADB表示Advanced Data Base的意思。×
14、AsyncHttpClient不可以处理异步HTTP请求。×
15、每一个广播只能有一个广播接收者接收。×
16、SQLite3是Android编程中唯一可使用的数据库。×
17、以绑定方式开启服务后,服务与调用者没有关系。×
18、Android是通过任务栈来管理Activity的。✓
19、启动系统相机使用的action是android.media.action.VIDEO_CAPTURE。×
20、SharedPreferences本质上是一个XML文件,以Map<key,value>形式存入文件中。 ✓
三、 多选题
1、在main.xml中,定义一个组件时,有两个属性必须写( )
A、 android:layout_width
B、 android:layout_height
C、 android:id="@+id/start"
D、 android:text
正确答案: AB
解析:
2、关于主题的说法,正确的是( )
A、 它是属性集合
B、 它可以在程序中来设置
C、 它通常用于一个Activity或所有Activity上
D、 它可以用于单个TextView上
正确答案: ABC
解析:
3、下面属于View的子类的是( )
A、 Activity
B、 Service
C、 ViewGroup
D、 TextView
正确答案: CD
解析:
4、打开Activity的界面时会执行( )、( )、( )方法。
A、 onCreate()
B、 onStart()
C、 onResume()
D、 onRestart()
正确答案: ABC
解析:
5、意图可分为( )
A、 显式意图
B、 隐式意图
C、 组件意图
D、 类意图
正确答案: AB
解析:
6、下列属于 Activity 的状态是( )
A、 暂停状态
B、 运行状态
C、 睡眠状态
D、 停止状态
正确答案: ABD
解析:
7、Android中把数据可以存储到以下哪个目录( )
A、 C盘
B、 SD卡目录
C、 /data/data/包名下
D、 D盘
正确答案: BC
解析:
8、android 数据存储与访问的方式有? ()
A、 sharedpreference
B、 数据库
C、 文件
D、 内容提供者
E、 网络存储
正确答案: ABCDE
解析:
9、下列选项中,关于XML序列化和解析描述合理的是( )
A、 DOM解析会将XML文件的所有内容以文档树方式存放在内存中
B、 在序列化对象时,需要使用XmlSerialize序列化器,即XmlSerializer类
C、 XmlSerializer类的startDocument()方法用于写入序列号的开始节点
D、 XmlSerializer类的setOutput()方法用于设置文件的编码方式
正确答案: ABD
解析:
10、在 android 中使用 SQLiteOpenHelper 这个辅助类时,哪些操作可能生成一个数据库
A、 getWriteableDatabase() 7
B、 getReadableDatabase()
C、 getDatabase()
D、 getAbleDatabase()
正确答案: AB
解析:
11、使用SQLiteOpenHelper类可以生成一个数据库并可以对数据库版本进行管理的方法。
A、 getDatabase()
B、 getWriteableDatabase()
C、 getReadableDatabase()
D、 getAbleDatabase()
正确答案: BC
解析:
12、使用SQLite数据库进行查询后,必须要做的操作是
A、 关闭数据库
B、 直接退出
C、 关闭Cursor
D、 使用quit函数退出
正确答案: AC
解析:
13、广播分两种,一种是( )广播,一种是( )广播。
A、 公共
B、 私有
C、 有序
D、 无序
正确答案: CD
解析:
14、Android中有()方式开启服务和( )方式开启服务。
A、 activeService
B、 startService()
C、 bindService()
D、 touchService
正确答案: BC ”
解析:
15、Service与Activity的共同点是
A、 都是四大组件之一
B、 都有onResume()方法
C、 都可以被远程调用
D、 都可以自定义美观界面
正确答案: AC
解析:
16、关于Service生命周期的onCreate()和onStart()方法,说法正确的是
A、 如果Service已经启动,将先后调用onCreate()和onStart()方法
B、 当第一次启动的时候先后调用onCreate()和onStart()方法
C、 当第一次启动的时候只会调用onCreate()方法
D、 如果Service已经启动,只会执行onStart()方法,不再执行onCreat()方法
正确答案: BD
解析:
17、下列选项中,属于绑定服务特点的是
A、 以bindService()方法开启
B、 调用者关闭后服务关闭
C、 必须实现ServiceConnection
D、 使用stopService()方法关闭服务
正确答案: ABC
解析:
18、HTTP协议中,数据提交方式有两种,分别是( )和( )。
A、 Get
B、 Put
C、 Post
D、 Give
正确答案: AC
解析:
19、Handler消息机制包含以下哪个对象。( )
A、 Message
B、 Handler
C、 MessageQueue
D、 Looper
正确答案: ABCD
解析:
20、Android系统采用分层架构,由高到低分别为【 】。
A、 应用程序层
B、 应用程序框架层
C、 核心类库
D、 Linux内核
正确答案: ABCD
解析:
四、简答题
- 在Android系统中常见有哪两种菜单,有何区别?
ContextMenu和OptionsMenu
主要有以下区别:
- ContextMenu必须通过Activity的registerForContextMenu(View)来进行注册,而OptionsMenu不用。
- ContextMenu不支持icon,而OptionsMenu支持。
- ContextMenu可以有头,可以通过setHeaderIcon,setHeaderTitle,setHeaderView来设置头,否则就没有头。
- 弹出的方式不一样。
- Options Menu的拥有者是Activity,而上ContextMenu的拥有者是Activity中的View。每个Activity有且只有一个Options Menu,它为整个Activity服务。而一个Activity往往有多个View,并不是每个View都有上下文菜单,这就需要我们调用registerForContextMenu(View view)来指定。
- Handler类的主要作用。
- 运行在某个线程上,共享线程的消息队列;
- 接收消息、调度消息,派发消息和处理消息;
- 实现消息的异步处理;
- 简述Android系统的Activity的基本作用和生命周期。
基本作用:(1)是用户和应用程序交互的接口。
(2)摆放各种控件的容器。
(3) 控制程序的逻辑
生命周期:创建,开始,恢复,暂停,停止,重新开始,销毁。
- 简述Fragment和Activity的关系。
Fragment(碎片)是一种可以嵌入在 Activity中UI片段,它可以用描述Activity中的一部分布局。
Fragment不能独立存在,必须嵌入到 Activity中使用,所以Fragment生命周期直接受所在的 Activity影响。
- 比较Service的两种启动方式,说明他们之间的区别
(1)两种启动方式分别是startService()和bindService()。
(2)startService()方法的服务会长期的在后台运行,即使启动服务的组件已经被销毀,它会依旧运行。
bindService()方法的服务会与组件绑定。当组件退出或调用unbindService()方法时,这个服务就会被销毁。
- 简述实现按钮控件点击事件的有几种方式(至少三种)
1) 匿名内部类
2) 由 Activity 实现 OnClickListener 接口
3) 在布局文件中添加 onClick 属性
- 简述Android体系结构
(1)Application
Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。
(2)Application Framework
开发人员也可以完全访问核心应用程序所使用的API 框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其 它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。
(3)Liberaries
1)程序库
Android 包含一些C/C++库,这些库能被Android系统中不同的组件使用。
2)Android 运行库
Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。
(4)Linux Kernel
Android 的核心系统服务依赖于 Linux 2.6 内核 ,如安全性,内存管理,进程管理,网络协议栈和驱动模型。Linux 内核也同时作为硬件和软件栈之间的抽象层。
- Activity的四种运行状态及转换关系。
在系统中存在四种状态:运行状态(Running), 暂停状态(Paused), 停止状态(Stopped), 销毁状态(Killed)。
- 简述利用控制台对SQLite数据库进行操作的过程。
- 输入命令 adb shell 进入根目录(程序运行在模拟器上);
- 输入 ls 查看列表;
- cd data/data/com.eric.demo 进入到程序;
- 输入 mkdir database 创建数据库文件夹;
- cd database 进入数据库文件夹;
- sqlite3 order.db 创建数据库(如果已存在就打开该数据库);
- 创建表 CREATE TABLE order(_id INTEGER PRIMARY KEY AUTOINCREMENT, order_num TEXT DEFAULT NULL, product_name TEXT DEFAULT NULL, price DOUBLE DEFAULT NULL);
- 查询表 .table
- 其他有关sqlite命令使用规则,可以通过命令: .help 获取
- 什么是LinearLayout及其主要参数含义。
线性布局(Linear Layout)主要以水平或垂直方式来显示界面中的控件。当控件水平排列时,显示顺序依次为从左到右,当控件垂直排列时,显示顺序依次为从上到下。
主要参数含义:
android:orientation:制控件排列方向,包含两个属性值:vertical(垂直)、horizontal(水平)
android:layout_weight:权重
- 简述Android的Http连接和socket连接的区别。
http连接:就是所谓的短连接,即客户端向服务器端发送一次请求,服务器端响应后连接即会断掉。
socket连接:就是所谓的长连接,理论上客户端和服务器端一旦建立起连接将不会主动断掉;但是由于各种环境因素可能会是连接断开。
12.如何才能将SD的信息读出以及将信息写入SD卡?给出关键步骤和关键代码。
- SD的信息读出
String state =Environment getExternalStorageStateO;if(state.equals(Environment.MEDIA_MOUNTED)){
File SDPath=Environment.getExternalStorageDirectoryO;//1.获取SD卡路径
File file =new File(SDPath,"data.txt");//2.创建文件对象FileInputStream fis=null;
BufferedReader br=null;
fis=new FilelnputStream(file);//3.创建文件输入流对象
//创建字符输入缓冲流的对象
br=new BufferedReader(new InputStreamReader(fis));
String data=br.readLine();//4.读取数据
br.close0;//5.关闭字符输入缓冲流
fis.close0;//6.关闭输入流
}
- 将信息写入SD卡
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/;
Activity Compat. requestPermissions(MainActivity.this,
new String[]{"android.permission.WRITE_EXTERNAL_STORAGE"},1);
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults){
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
13.简述AndroidManifest.xml文件的作用。
是Android应用的入口文件,它描述了package中暴露的组件,他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities,ContentProviders,Services,和Intent Receivers,还能指定permissions和instrumentation。
四、程序设计题
- 编写android程序,实现两个activity间传递消息。要求在第一个activity上实现按钮,点击按钮将消息发送给第二个activity并在其上显示出来。请在下面写出两个activity对应的java文件(first.java和second.java)的主要代码。
first.java:
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class FirstActivity extends AppCompatActivity {
private Button btn_first;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
btn_first=findViewById(R.id.btn_first);
btn_first.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtra("message","17180074平帅");
startActivity(intent);
}
});
}
}
second.java:
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class SecondActivity extends AppCompatActivity {
private TextView tv_message;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
tv_message=findViewById(R.id.tv_message);
Intent intent=getIntent();
String data=intent.getStringExtra("message");
tv_message.setText("消息:"+data);
}
}
2.使用Android创建SQLite数据库数据库名称为student.db,在此数据库中创建一个表:student,表中有3个字段:学号,姓名,年龄(id,name,age)。当点击按钮时,Android将自动创建一个student表。具体步骤:1)写一个类MyDBHelper.java继承SQLiteOpenHelper类,在这个类中创建表和数据库;2)创建布局中显示一个按钮 ,写出按钮点击事件,激发数据库建表。写出类程序运行的界面布局如下图所示。请写出java核心代码。
(1)MyHelper.java
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;
public class MyHelper extends SQLiteOpenHelper {
// private Context mcontext;
public MyHelper(Context context){
super(context,"student.db",null,2);
// mcontext=context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE student(_id integer primary key autoincrement,name varchar(20),age integer)");
// Toast.makeText(mcontext,"创建成功",Toast.LENGTH_LONG).show();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
(2)MainActivity.java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button btn_create;
private MyHelper myHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myHelper=new MyHelper(this);
btn_create=findViewById(R.id.btn_create);
btn_create.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myHelper.getWritableDatabase();
}
});
}
}
- Android使用SharedPreferences生成文件mydata.xml,里面保存的数据为:
类型为String的“name”,其值为“xiali”;类型为整型的“num”其值为“11100”;类型为整型的“age”,其值为“19”;类型为浮点数型的“mon”其值为“1000.35”。
试写出:(1)Android以SharedPreferences保存这些数据的Java代码;
(2)mydata.xml文件的内容。
(1)Java代码:
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sp=getSharedPreferences("mydata",MODE_PRIVATE);
SharedPreferences.Editor editor=sp.edit();
editor.putString("name","xiali");
editor.putInt("num",11100);
editor.putInt("age",19);
editor.putFloat("mon", (float) 1000.35);
editor.commit();
Toast.makeText(this,"保存成功",Toast.LENGTH_LONG).show();
}
}
(2)mydata.xml文件:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="name">xiali</string>
<int name="num" value="11100" />
<int name="age" value="19" />
<float name="mon" value="1000.35" />
</map>
评论