团队级软件开发理论与技术&& 管理信息系统项目管理与质量
1、Activity是android程序的呈现层,显示可视化的用户界面,并接收与用户交互所产生的界面事件。
答案: 正确
2、创建Activity,实现布局,通过onCreate()方法设置布局。
答案: 正确
答案: 正确
4、以下关于sqliteOpenHelper的描述,错误的是()。
B、 sqliteOpenHelper中有两个抽象方法,分别是onCreate()和onUpdate()
C、 sqliteOpenHelper中的getReadableDatabase()方法返回一个可对数据库进行读写操作的对象
D、 当磁盘空间已满,getWritableDatabase()方法将出现异常
答案: B
5、以下数据类型不属于sqlite的是()。
A、 real
B、 text
C、 blob
D、 boolean
答案: D
6、子线程默认是没有消息队列的。
答案: 正确
7、以下方法中,运行在子线程中的是()。
A、 onPostExecute(Result)
B、 onPreExecute()
C、 onProgressUpdate(Progress...)
D、 doInBackground(Params...)
答案: D
8、Android四大组件分别是: , , 和 。
答案:
Activity
;
Service
;
Content Provider
;
broadcast Receiver
;
解析:
9、编程实现Android中异步消息处理机制,功能不限。
答案:
Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (msg.what == 1) {
String s = (String) msg.obj;
Gson gson = new Gson();
data = gson.fromJson(s, new Typetoken<List<Contacts>>() {
}.getType());
//adapter.notifyDataSetChanged();
adapter = new MyAdapter(PassengerAddActivity.this, R.layout.item_passenger_add, data);
lv.setAdapter(adapter);
for (int i = 0; i < data.size(); i++) {
cbSelected.add(false);
}
}
};
new Thread(new Runnable() {
@Override
public void run() {
// Todo Auto-generated method stub
DefaultHttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet("http://10.0.2.2:8080/list");
try {
HttpResponse httpResponse = client.execute(get);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
String response = EntityUtils.toString(
httpResponse.getEntity(), "utf-8");
Message msg = new Message();
msg.what = 1;
msg.obj = response;
handler.sendMessage(msg);
}
} catch (ClientProtocolException e) {
// Todo Auto-generated catch block
e.printstacktrace();
} catch (IOException e) {
// Todo Auto-generated catch block
e.printstacktrace();
}
}
}).start();
解析:
10、关于Service,以下描述错误的是()。
A、 没有用户界面
B、 用于线程间通信
C、 比Activity 的优先级高,不会轻易被Android系统终止
D、
即使Service被系统终止,在系统资源恢复后Service也将自动恢复运行状态。
答案: B
11、本地服务实现进程内通信。
答案: 正确
12、创建Service,必须实现的方法是()。
A、 onCreate()
B、 onStartCommmand()
C、 onBind()
D、 onDestroy()
答案: C
13、Android应用的所有UI都继承了_________类。
答案:
View
;
14、Android推荐使用_________布局文件来控制视图
答案:
XML
;
15、Android的所有布局管理器都是_________的子类
答案:
ViewGroup
;
16、所有布局都可作为容器类使用,因此可以调用多个重载的_________方法向布局管理器中添加组件。
答案:
addView
;
17、当前Activity处于_________状态时,Activity位于前台,用户可见,可以获得焦点
答案:
活动
;
18、当创建Activity时,_________方法被回调,该方法只会被调用一次。
答案:
onCreate
;
19、________代表了Android应用的启动“意图”,应用程序将会根据它来启动指定组件。
答案:
Intent
;
20、可通过R资源清单类访问的资源,保存在________目录下
答案:
res
;
21、无法通过R资源清单类访问的原生资源,保存在________目录下
答案:
assets
;
22、在进行Android国际化操作的时候,不同values文件夹的命名方式为 values-____________-r国家代码
答案:
语言代码
;
23、在进行LinearLayout布局时,如果要让其内部组件垂直方向上排列,需要设置 android:orientation=______________
答案:
vertical
;
24、在Android中定义逐帧动画时,需要在 <animation-list>元素下定义___________子元素。
答案:
item
;
25、SharePreferences在写入数据的时候,需要调用_________方法获取相应的Editor进行操作。
答案:
edit
;
答案:
execsql
;
27、Android运行Service有2种方式,一种是通过startService方法,另一种是调用_____________方法
答案:
bindService
;
28、res\layout\下面定义的 xml 文件命名,大小写字母均可
答案: 错误
解析:
29、Android颜色值 #RRGGBB 分别指定红、绿、蓝三原色的值
答案: 正确
30、在进行2D绘图时,Canvas通过skew(float sx,float sy) 执行旋转变换。
答案: 错误
31、SharePreferences在保存数据的时候以键值对的方式保存,其中的值可以存储Date类型的时间数据。
答案: 错误
32、调用Environment的getExternalStorageState()方法判断手机上是否插入了SD卡
答案: 正确
33、sqlite并不像MysqL数据库那样需要安装、启动服务器进程,它只是一个文件。
答案: 正确
34、除主键外,sqlite允许把各种类型的数据保存到任何类型字段中。
答案: 正确
35、ContentProvider与Activity一样,存在相同的生命周期
答案: 错误
36、以下叙述错误的是()。
A、 多次调用 unbindService 来释放相同的连接会抛出异常。
B、
在调用 bindService 绑定到Service的时候,应当保证在某处调用 unbindService 解除绑定 ,否则当Activity finish时,虽然会关闭服务,但会抛出异常。
C、 bindService()方法有三个参数。
D、 如果同时使用 startService 与 bindService启动Service,那么Service 的终止需要unbindService与stopService同时调用,要注意 startService 与 bindService 的调用顺序和stopService与unbindService的调用顺序一致。
答案: D
37、<uses-permission android:name="android.permission.READ_CONTACTS"/>表示授予程序读取系统联系人的权限
答案: 正确
38、开发一个ContentProvider,需要创建其子类,该子类需要实现 select、insert、update和delete方法
答案: 错误
39、多次启动一个已有的Service组件将不会再多次回调该组件的onCreate方法
答案: 正确
40、在使用AIDL定义远程接口的时候,接口的源代码必须以 .aidl结尾
答案: 正确
41、MediaPlayer对象通过调用prepare()方法来装载音频资源。
答案: 错误
42、HttpURLConnection通过调用getResponseCode方法获取服务器的响应代码,如果返回200表示成功获取响应
答案: 正确
43、Android通过WebView的addJavaScriptInterface()方法把Android应用中的对象暴露给JavaScript脚本。
答案: 正确
44、Android中,实现IPC(Inter-Process Communication)的方式,错误的是()。
A、 Intent
B、 本地服务
C、 远程服务
D、 Content Provider
答案: B
45、Android中的主线程是也叫 。
答案:
UI线程
;
46、Android中发送HTTP请求,需要声明()权限。
A、 android.permission.INTERNET
B、 android.permission.ACCESS_NETWORK_STATE
C、 android.permission.WRITE_SECURE_SETTINGS
D、 android.permission.WRITE_EXTERNAL_STORAGE
答案: A
47、AIDL全称是 。
答案:
Android Interface DeFinition Language
;
A、 接口名和.aidl文件名相同。
B、 接口和方法前不加访问权限修饰符。
C、 .aidl文件中使用Java基本类型不需要import声明。
D、
如果使用自定义类型作为参数或返回值,自定义类型必须实现Serializable接口。
答案: D
49、关于Binder,叙述错误的是()。
A、 Binder是Android中的一个抽象类,实现了IBinder接口。
B、 从IPC角度,Binder是跨进程通信方式。
C、 从应用层角度,Binder是客户端与服务端通信的媒介。
D、 从FrameWork角度,Binder是ServiceManager连接各种Manager(如am,wm等)的桥梁。
答案: A
50、使用AIDL语言定义跨进程服务的接口,会生成了一个内部静态抽象类Stub,Stub继承了 类。
A、 Service
B、 Binder
C、 Handler
D、 Activity
答案: B
51、获取SharedPreferences对象的方法,以下错误的是()。
A、 Context类中的getSharedPreferences()方法。
B、 Activity类中的getPreferences()方法。
C、 PreferenceManager类中的getDefaultSharedPreferences()方法。
D、 Context类中的getPreferences()方法。
答案: D
52、下面不是Android四大组件之一的
A、 Activity
B、 Intent
C、 Service
D、 ContentProvider
答案: B
53、下面关于广播叙述错误的是
A、 广播是Android四大组件之一
B、 broadcastReceiver有两种注册方式,静态注册和动态注册
C、 静态注册需要在Mainfest.xml中配置
答案: A
A、 broadcastReceiver有两种注册方式,静态注册和动态注册。
B、 broadcastReceiver必须在AndroidMainfest文件中声明
C、 broadcastReceiver的使用,一定有一方发送广播,有一方监听注册广播,onReceive方法才会被调用。
D、 广播发送的Intent都是隐式启动。
答案: B
55、下面关于谁先接收广播顺序错误的是
A、 有序广播,优先级高的先接收
B、 有序广播,同优先级的动静态广播接收器,静态优先于动态。
C、 有序广播,同优先级的动态广播接收器,先注册的大于后注册的。
D、 普通广播时,无视优先级,动态广播接收器优先于静态广播接收器
答案: B
56、下面关于广播说法错误的是
A、 广播分为有序广播和无序广播
B、 使用abortbroadcast方法可以中断所有广播的传递。
C、 广播注册方式分为动态和静态
D、 sendOrderbroadcast用来向系统广播有序事件,sendbroadcast()是用来广播无序事件。
答案: B
57、下列关于Intent启动组件说法错误的是
A、 startActivity()
B、 startService()
C、 startbroadcastReceiver()
D、 startActivityForResult()
答案: C
58、对于广播的发送,Intent的启动方式是
A、 显式启动
B、 隐式启动
C、 A和B都可以
D、 以上说法都不正确。
答案: B
59、下面关于Notification的说法正确的是
A、 notificationmanagerman=newnotificationmanager()
B、 PendingIntentcontentIntent=newPendingIntent()
C、 RemoteViewscontentView=newRemoteViews()
D、 Notificationnotification=newNotification()
答案: D
60、关于ContenValues类说法正确的是
A、 他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值都是基本类型
B、 他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是任意类型,而值都是基本类型
C、 他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名,可以为空,而值都是String类型
D、 他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值也是String类型
答案: A
61、在手机开发中常用的数据库是
A、 sqlite3
B、 Oracle
C、 sqlServer
D、 DB2
答案: A
62、使用AIDL完成远程Service方法调用下列说法不正确的是
C、 创建一个Service(服务),在服务的onBind(Intentintent)方法中返回实现了aidl接口的对象
D、 aidl对应的接口的方法前面不能加访问权限修饰符
答案: A
63、android中文件操作模式中表示只能被本应用使用,写入文件会覆盖的是
A、 MODE_APPEND
B、 MODE_WORLD_READABLE
C、 MODE_WORLD_WRITEABLE
D、 MODE_PRIVATE
答案: D
64、关于android中播放视频的说法不对的是
A、 可以使用SurfaceView组件播视频
B、 可以使用VideoView组件播视频
C、 VideoView组件可以控制播放的位置和大小
D、 VideoView播放视频的格式可以是3gp
答案: C
65、下列关于如何使用Notification,不对的是
A、 notification需要NotificatinManager来管理
B、 使用notificationmanager的notify方法显示notification消息
C、 在显示Notification时可以设置通知时的默认发声,震动等
答案: D
66、下列不属于Service生命周期的方法是
A、 onCreate
B、 onDestroy
C、 onStop
D、 onStart
答案: C
67、下列对SharedPreferences存、取文件的说法中不正确的是:
A、 属于移动存储解决方案
B、 sharePreferences处理的就是key-value对
C、 读取xml文件的路径是/sdcard/shared_prefs/
D、 数据的保存格式是xml
答案: C
68、SharedPreferences存放的数据类型不支持
A、 boolean
B、 int
C、 String
D、 double
答案: D
69、下面关于JSON说法错误的是:
A、 json是一种数据交互格式。
B、 json的数据格式有两种为{}和[]
C、 json数据用{}表示java中的对象,[]表示Java中的List对象
D、 {“1”:”123”,”2”: ”234”,”3”:”345”}不是json数据
答案: D
70、下面sql语句不正确的是
A、 select * from user
B、 update user set username=’zhangsan’ where id=’2
C、 delete * from user
D、 insert into user values(1,’zhang’,’pass’);
答案: C
71、对于SharedPreferences的下面正确的是
A、 SharedPreferencespref=newSharedPreferences();
B、 Editoreditor=newEditor();
C、 SharedPreferences对象用于读取和存储常用数据类型
D、 Editor对象存储数据最后都要调用commit()方法。
答案: D
72、在多个应用中读取共享存储数据时,需要用到的query方法,是哪个对象的方法
A、 ContentResolver
B、 ContentProvider
C、 Cursor
D、 sqliteHelper
答案: A
73、Service中如何实现更改Activity界面元素
A、 通过把当前activity对象传递给service对象
B、 通过向Activity发送广播
C、 通过Context对象更改Activity界面元素
D、 可以在Service中,调用Activity的方法实现更改界面元素
答案: B
74、在使用sqliteOpenHelper这个类时,它的哪一个方法是用来实现版本升级之用的?
A、 onCreate()
B、 onUpgrading()
C、 onUpdate()
D、 onUpgrade()
答案: D
75、MediaPlayer播放资源前,需要调用哪个方法完成准备工作?
A、 setDataSource()
B、 prepare()
C、 reset()
D、 release()
答案: B
76、在android中使用sqliteOpenHelper这个辅助类时,创建数据库主要使用哪个方法
A、 getDatabase()
B、 openDatabase()
C、 getReadableDatabase()
D、 getAbleDatabase()
答案: C
77、关于service生命周期的说法正确的是?
A、 如果service已经启动,将先后调用onCreate()和onStart()方法
B、 当第一次启动的时候先后调用onCreate()和onStart()方法
D、 如果Service没有启动,不能调用StopService停止服务。
答案: B
78、使用MediaPlayer播放保存在sdcard上的mp3文件时,应如何操作
A、 需要使用MediaPlayer.create方法创建MediaPlayer
B、 直接newMediaPlayer即可
答案: C
79、使用AIDL完成远程service方法调用下列说法不正确的是?
C、 创建一个Service,在服务的onBind(Intentintent)方法中返回实现了aidl接口的对象
D、 aidl对应的接口的方法前面不能加访问权限修饰符
答案: A
80、关于广播的作用,正确的说法是
A、 它是用接收系统发布的一些消息的
C、 它不可以启动一个Service
D、 它可以启动一个Activity
答案: D
A、 sqliteOpenHelper类主要是用来创建数据库和更新数据库
C、 在每次调用sqliteDatabase的getWritableDatabase()方法时,会执行sqliteOpenHelper的onCreate方法。
答案: C
82、下列选项哪个不是Activity启动的方法
A、 goToActivity
B、 startActivity
C、 startActivityFromChild
D、 startActivityForResult
答案: A
83、下列选项哪个是发送广播的方法
A、 startbroadcast
B、 startbroadcastReceiver
C、 sendbroadcast
D、 sendbroadcastReceiver
答案: C
84、SharedPreferences保存文件的路径和扩展名是?
A、 /data/data/shared_prefs/*.txt
B、 /data/data/packagename/shared_prefs/*.xml
C、 /mnt/sdcard/指定文件夹指定扩展名
D、 任意路径指定扩展名
答案: B
85、Activty和Task的启动模式有哪些?
A、 standard、singletop
B、 singletop、singleTask
C、 singleTask、singleInstance
D、 standard、singletop、singleTask、singleInstance
答案: D
86、对于一个已经存在的SharedPreferences对象setting,想向其中存入一个字符串"person",setting应该先调用什么方法
A、 edit()
B、 save()
C、 commit()
D、 putString()
答案: A
87、通过startService()和bindService(),以下说法错误的是
A、 通过startService()启动服务:会调用如下生命周期方法:onCreate()---->onStart()---->onDestory()
B、 当采用startService()方法启动服务,访问者与服务之间是没有绑定在一起的,访问者退出,服务还在运行
C、 如果是调用bindService()启动服务:会调用如下生命周期方法:onCreate()---->onBind---->onDestory()---->onUnBind()
D、 采用bindService()方法启动服务时,访问者与服务是绑定在一起的,即访问者退出,服务也就终止,解除绑定。
答案: C
88、在Android中,关于MediaPlayer说法错误的是
A、 MediaPlayer包含了Audio和video的播放功能。
B、 获得MediaPlayer实例的有newMediaPlayer()和MeiaPlayer.create()的方式。
C、 当我们播放一首歌曲由于异常中断,由于数据丢失,只能从开始的位置开始播放。
D、 在指定MediaPlayer数据的来源时,必须指定播放的文件的路径、资源id或网络路径。
答案: C
89、在JDBC连接数据库编程应用开发中,利用( )可以实现连接数据库。
A、 Connection类
B、 PreparedStatement类
C、 CallableStatement类
D、 Statement
答案: A
90、为了实现在Java的程序中调用带参数的sql语句,应该采用( )来成。
A、 Connection类
B、 PreparedStatement类
C、 ResultSet类
D、 Statement
答案: B
91、从HTTP请求中,获得请求参数,应该调用
A、 request对象的getAttribute()方法
C、 session对象的getAttribute()方法
答案: B
92、多线程下载和断点续传使用什么( )类是对文件进行操作。
A、 FileInputStream
B、 FileOutputStream
C、 InputStreamReader
D、 RandomAccessFile
答案: D
A、 Context对象调用openorCreateDatabase方法打开或者创建数据库
B、 sqliteDatabase类的静态方法openorCreateDatabase方法打开或者创建数据库
C、 Context对象closeDatabase方法关闭数据库。
D、 sqliteDatabase类的静态方法deleteDatabase方法删除数据库
答案: C
94、下列不属于service生命周期的方法是
A、 onCreate
B、 onDestroy
C、 onStop
D、 onStartCommand
答案: C
95、关于ServiceConnection接口的onServiceConnected()方法的触发条件描述正确的是
A、 bindService()方法执行成功后
B、 bindService()方法执行成功同时onBind()方法返回非空IBinder对象。
C、 Service的onCreate()方法和onBind()方法执行成功后。
D、 Service的onCreate()和onStartCommand()方法启动成功后。
答案: B
96、使用sqliteOpenHelper的构造方法创建与数据库连接时,参数可以设置为null的是
A、 Context
B、 数据库名
C、 CursorFactory
D、 数据库版本
答案: C
97、继承ContentProvider不需要实现( )等方法。
A、 add
B、 delete
C、 update
D、 query
答案: A
A、 sendbroadcast()
B、 sendCommonbroadcast()
C、 sendOrderedbroadcast()
D、 sendStickybroadcast()
答案: B
99、下列关于ContentProvider的说法错误的是:
A、 ContentProvider的作用是实现数据共享和交换
B、 要访问ContentProvider,只需调用ContentProvider的增删改查相关方法
C、 ContentProvider提供的URI必须以“content://”开头
D、 Android对于系统里的音视频、图像、通讯录提供了内置的ContentProvider
答案: B
100、获取SD卡音乐列表,通过调用( )方法,才能调用query方法
A、 getContentProvider
B、 getContentResolver
C、 getConnection
D、 getUri
答案: B
101、关于JSON和XML说法,错误的是
A、 JSON的速度要远远快于XML
B、 JSON对数据的描述性比XML好
C、 JSON相对于XML来讲,数据的体积小
D、 JSON和XML同样拥有丰富的解析手段
答案: B
102、对输入中拼写检查的支持是通过什么方式实现的?
A、 broadcastReceiver
B、 ContentProvider
C、 Service
D、 Activity
答案: C
103、通过Intent可以启动那些组件?
A、 Activity
B、 Service
C、 A,B 两项都不可以
D、 A,B两项都可以
答案: D
104、以下哪个不是Activity启动时的正确标志?
A、 FLAG_ACTIVITY_CLEAR_TOP
B、 FLAG_ACTIVITY_SINGLE_TASK
C、 FLAG_ACTIVITY_SINGLE_TOP
D、 FLAG_ACTIVITY_NEW_TASK
答案: B
105、遇到下列哪种情况时需要把进程移到前台?
A、 进程正在运行一个与用户交互的Activity,它的onResume()方法被调用
B、 进程有一正在运行的broadcastReceiver,它的onReceive()方法正在执行
C、 进程有一个Service,该Service对应的Activity正在与用户交互
D、 所有选项均正确
答案: D
106、如何访问媒体库?
A、 通过直接文件读取
B、 通过ContentProvider
C、 A,B两项都可以
D、 A,B两项都不可以
答案: B
107、FLAG_ACTIVITY_CLEAR_TOP标记的作用是什么?
A、 如果Activity已经在任何栈中启动,则不做任何操作
B、 如果Activity已经在当前栈中启动,则不做任何操作
C、 如果Activity已经在当前栈中启动,则所有在该Activity之上的Activity都会被销毁
D、 如果Activity已经在任何栈中启动,则所有在该Activity之上的Activity都会被销毁
答案: C
108、关于广播以下陈述正确的是
B、 广播接收器注册后不能注销
C、 广播接收器只能接收自定义的广播消息
D、 广播接收器可以在Activity中单独注册与注销
答案: D
109、下面哪种进程最重要,最后被销毁?
A、 服务进程
B、 后台进程
C、 可见进程
D、 前台进程
答案: D
110、SharedPreferences和Preferences的修改支持事务吗?
答案: A
111、在播放视屏时,需要保持屏幕一直亮着,需要哪个权限?
A、 <uses-permissionandroid:name="android.permission.INTERNET"/>
B、 <uses-permissionandroid:name="android.permission.WAKE_LOCK"/>
C、 <uses-permissionandroid:name="android.permission.SCREEN_LOCK"/>
D、 <uses-permissionandroid:name="android.permission.DIM_LOCK"/>
答案: B
112、当大量使用大Bitmap对象时,以下哪个说法是正确的?
A、 不会崩溃,但要求不再使用的Bitmap对象设置为空
B、 不会崩溃,但要求经常调用System.gc()通知内存释放
C、 不会崩溃,因为虚拟机会自动回收内存
D、 很可能会导致系统崩溃
答案: D
113、以下哪个不是应用间交互常用的方法?
A、 接收broadcast的消息
B、 文件共享访问
C、 通过ContentResolver接口访问
D、 Activity的调用
答案: B
114、通过bindService()启动service,如果service还未启动,后有什么操作?当调用者退出,service会有什么操作?
A、 失败,不终止
B、 启动,终止
C、 失败,终止
D、 启动,不终止
答案: B
115、Android应用四大组件中,可以在后台长时间执行长时,而不需要提供用户界面的是(
A、 Service
B、 Activity
C、 broadcastReceiver
D、 ContentProvider
答案: A
116、ContentResolver用什么方法查询ContentProvider提供的内容
A、 select()
B、 retrieve()
C、 query()
D、 execute()
答案: C
117、PendingIntent主要的使用场景是?
A、 在Widget中设置响应用户操作的动作
B、 通过Notification发起一个动作
C、 至少有一个不正确
D、 A和B都正确
答案: D
118、在应用程序中用到设备震动时需要使用什么权限?
A、 android.hardware.permission.VIBRATE
B、 android.permission.hardware.VIBRATE
C、 android.security.VIBRATE
D、 android.permission.VIBRATE
答案: D
119、关于ServiceConnection接口的onServiceConnected()方法的触发条件描述正确的是?
A、 bindService()方法执行成功后
B、 bindService()方法执行成功同时onBind()方法返回非空IBinder对象
C、 Service的onCreate()方法和onBind()方法执行成功后
D、 Service的onCreate()和onStartCommand()方法启动成功后
答案: B
120、关于Intent对象说法错误的是
A、 在android中,Intent对象是用来传递信息的
B、 Intent对象可以把值传递给广播或Activity
C、 利用Intent传值时,可以传递一部分值类型
D、 利用Intent传值时,它的key值可以是对象
答案: D
121、Notification消息能否被取消?
A、 只能取消本应用发起的消息
B、 可以被任何应用取消
C、 不能取消,只能覆盖
D、 只能取消本应用发起的消息,且只能通过消息ID逐个取消
答案: A
122、如果在android应用程序中需要发送短信,那么需要在AndroidManifest.xml文件中增加什么样的权限
A、 发送短信,无需配置权限
B、 permission.SMS
C、 android.permission.RECEIVE_SMS
D、 android.permission.SEND_SMS
答案: D
123、关于视频的来源,哪个不正确?
A、 可来源于外部URL
B、 可来源于内部URI,通过ContentResolver获取
C、 可来源于资源文件
D、 可以文件方式直接访问内部Media
答案: D
124、内部存储和外部存储需要额外的权限吗?
A、 不需要,不需要
B、 需要,不需要
C、 需要,需要
D、 不需要,需要
答案: D
125、如何访问在SD卡上的文件?
A、 通过直接文件读取
B、 通过ContentProvider
C、 A,B两项都不可以
D、 A,B两项都可以
答案: D
126、下列哪些情况下,系统可能会弹出ANR对话框
A、 在Activity中,Main线程消息队列中的消息在5秒内没有得到响应
B、 在Service中,onStartCommand()方法执行超过5秒
C、 在broadcastReceiver中,onReceive()方法执行时间超过5秒
D、 在启动的新线程中,run()方法执行时间超过5秒
答案: A
127、通过startService()和bindService(),以下说法错误的是
A、 通过startService()启动服务会调用如下生命周期方法:onCreate()---->onStart()---->onDestory()
B、 当采用startService()方法启动服务,访问者与服务之间是没有绑定在一起的,访问者退出,服务还在运行
C、 如果是调用bindService()启动服务:会调用如下生命周期方法:onCreate()---->onBind---->onDestory()---->onUnBind()
D、 采用bindService()方法启动服务时,访问者与服务是绑定在一起的,即访问者退出,服务也就终止,解除绑定。
答案: C
128、如果想存储一个键值对字符串,应该使用哪个类?
A、 ContentResolver
B、 SharedPreferences
C、 Resources
D、 Cookies
答案: B
129、系统收到intent发起的启动Activity的请求时,根据什么来选择最合适的Activity?
A、 category
B、 data
C、 action
D、 都可以
答案: D
130、Android提供了哪个高效的序列化接口?
A、 Clonable
B、 Parcelable
C、 copiable
D、 Externalizable
答案: B
解析:
131、下面哪条语句可以构造正确的对话框
A、 AlertDialogdialog=newAlertDialog(context);
B、 AlertDialog.Builderbuilder=newAlertDialog.Builder(context);
C、 ProgressDialogdialog=newProgressDialog();
D、 ProgressDialog.Builderbuilder=newProgressDialog.Builder(context);
答案: B
132、视频播放支持以下哪种方式?
A、 同步方式
B、 异步方式
C、 两者都支持
D、 两者都不支持
答案: C
133、哪个是交互UI相关的控件?
A、 Activity
B、 broadcastReceiver
C、 Service
D、 Contentprovider
答案: A
134、绑定Service的方法是
A、 bindService
B、 startService
C、 onStart
D、 onBind
答案: A
135、关于Activity说的法不正确的是
B、 一个应用程序可以有若干个Activity
C、 Activity可以通过一个别名去访问
D、 Activity可以表现为一个漂浮的窗口
答案: C
A、 使用onoptionsItemSelected(MenuItemitem)响应
B、 使用onMenuItemSelected(intfeatureId.MenuItemitem)响应
C、 使用onMenuItemClick(MenuItemitem)响应
D、 使用onCreateOptionsMenu(Menumenu)响应
答案: D
137、AndroidActivity生命周期中调用的第一个方法是?
A、 onInit()
B、 onStart()
C、 onCreate()
D、 onBegin()
答案: C
138、Intentintent=newIntent(Intent.ACTION.VIEW,Uri.parse("http://mail.google.com"))这句话作用陈述正确的是(
A、 发送Email
B、 在浏览器浏览这个网址
C、 发送短信
D、 其它项不正确
答案: B
139、如果把APP的最小SDK版本设置成8,那么以下哪个版本的将无法运行则个APP?
A、 7
B、 8
C、 9
D、 都可以
答案: A
A、 声明要求的最低API级别
B、 声明要求的用户权限的级别
C、 记录程序中使用的Activity等资源
D、 都是
答案: D
141、发起一个由以下代码初始化的Intent,会发生什么情况?
Intent intent=new Intent();
intent.addCategory(Intent.CATEGORY_broWSABLE);
intent.setAction(Intent.ACTION_MAIN);
A、 如果系统中有多个浏览器,则会让用户选择浏览器
B、 如果系统有多个浏览器,并且设置了默认的,则会打开默认浏览器
C、 如果系统中只有一个浏览器,则会打开该浏览器
D、 都正确
答案: D
解析:
142、当Activity由于资源不足被回收时,哪个函数会被调用?
A、 onSaveInstanceState()
B、 onSuspend()
C、 onSaveState()
D、 onStop()
答案: A
143、导致一个Activity的onDestroy()方法被调用的原因是什么?
A、 该Activity被暂停或者停止,并且它的资源被操作系统回收
B、 启动该Activity的Activity调用了finishActivity()
C、 活动(Activity)调用finish()
D、 三项原因都是
答案: D
A、 onCreate(),onResume(),onStart()
B、 onCreate(),onRestart(),onResume()
C、 onStart(),onResume(),onCreate()
D、 onCreate(),onStart(),onResume()
答案: D
145、按HOME按钮后,系统查找哪类Activity?
A、 设置了ACTION_MAIN和ATEGORY_LAUNCHER的Activity
B、 设置了ACTION_MAIN或ATEGORY_LAUNCHER的Activity
C、 设置了ACTION_MAIN的Activity
D、 设置了ATEGORY_LAUNCHER的Activity
答案: A
146、在Android工程中新建了一个Activity需要在哪个xml文件中声明一下?
A、 main.xml
B、 string.xml
C、 AndroidMainifest.xml
D、 layout.xml
答案: C
147、如果需要启动一个Activity,并在Activity结束时可立即获取结果的方法是。
A、 调用startActivityForResult()
B、 在启动的Activity中注册receiver,在被启动的Activity中发起broadcast消息
C、 A,B两个选项都不正确
D、 A,B两个选项都正确
答案: D
148、如何给一个正在运行的service传递消息(
A、 通过注册Receiver
B、 通过Intent
C、 通过定义AIDL接口
D、 都正确
答案: D
149、在播放视频或音频时,如果有电话打入,这时候视频或音频会自动挂起吗?
A、 不会
B、 会
C、 有的手机会,有的手机不会
D、 以上说法都错误
答案: A
150、如何支持语言国际化?
A、 在资源文件中按名称设置参数,例如:zh_CN.Title=”标题”
B、 按不同语言分目录提供不同的strings.xml文件
C、 两者都不正确
D、 两者都正确
答案: B
151、关于Intent的说法,错误的是?
A、 可以用来激活一些组件
B、 表示程序想做某事的意图
C、 只能用于一个组件内部
D、 不同组件之间通信的“媒介”,专门提供组件互相调用的相关信息。
答案: C
152、页面中有三个控件分别为:
文本输入框(负责输入用户名,id为editText1)
普通按钮(进行用户是否存在检测,id为button1)
1) 当用户名输入为“harbin”时,表示用户存在,点击普通按钮提示“检测成功....”,输入其他信息提示“检测失败....”
2)如果文本输入框没有输入信息,在文本输入框控件上给出错误提示“用户名不能为空”,并获取焦点。
3)当单选按钮选中,并且用户名检测成功时,会将正确用户名保存,第二次进入时,无需输入用户名,直接显示提示“自动检测成功....”。 未选中时,不保存用户信息。
请补充完善如下代码:
public class SharedPreferencesActivity2 extends Activity {
Button btn;
EditText et1;
CheckBox cb;
SharedPreferences pref;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
___(1)______(R.layout.sharedpreferences2);
btn = (Button) findViewById(R.id.button1);
et1 = (EditText) findViewById(R.id.editText1);
cb = (CheckBox) findViewById(R.id.checkBox1);
_____(2)____ = getSharedPreferences("person", Context.MODE_PRIVATE);
String myUsername = pref.getString("username", "");
if("harbin".equals(myUsername) ){
Toast.makeText(SharedPreferencesActivity2.this, "自动检测成功....", Toast.LENGTH_SHORT).show();
}
btn.setonClickListener(new OnClickListener() {
public void ___(3)______(View arg0) {
String username = et1.getText().toString();
if(TextUtils.isEmpty(username)){
et1.___(4)______("用户名不能为空");
et1.___(5)______();
}else{
if("harbin".equals(username)){
Toast.makeText(SharedPreferencesActivity2.this, "检测成功....", Toast.LENGTH_SHORT).show();
____(6)_____ editor = pref.edit();
if(cb.___(7)______()){
editor.____(8)_____("username", username);
}else{
editor.__(9)_______("username");
}
editor.___(10)______();
}else{
Toast.makeText(SharedPreferencesActivity2.this, "检测失败....", Toast.LENGTH_SHORT).show();
}
}
}
});
}
}
答案:
setContentView
;
pref
;
onClick
;
setError
;
requestFocus
;
Editor
;
isChecked
;
putString
;
remove
;
commit
;
解析:
153、Android之父是__________。
答案:
安迪.罗宾
;
154、Dx-工具把编译过的Java 文件转换为_________文件。
答案:
dex
;
155、Android系统有四个重要的组件,分别是Activity、Service、broadcaseReceiver和__________。
答案:
ContentProvider
;
156、Activity表现为四种状态,分别是活动状态、暂停状态、停止状态和__________。
答案:
非活动状态
;
157、Activity栈遵循__________的规则。
答案:
后进先出
;
158、可视生命周期是Activity在界面上从可见到不可见的过程,开始于__________方法结束于onStop()方法。
答案:
onStart()
;
159、Intent可以划分成显式意图和__________。
答案:
隐式意图
;
160、视图树由View和__________构成。
答案:
ViewGroup
;
161、声明Android程序的界面布局有两种方法,一种是使用文件_________文件描述界面布局,第二种是在程序运行时动态添加或修改界面布局。
答案:
XML
;
162、安卓的Files,是通过FileInputStream和__________对文件进行操作。
答案:
FileOutputStream
;
163、Shared Preferences存储是以__________文件形式保存的。
答案:
XML
;
164、页面中有一个文本输入框(负责输入用户名,id为editText1) ,一个单选按钮(控制是否自动检测,id为checkBox1),一个普通按钮(进行用户是否存在检测,id为button1)
在第一次操作时,当用户名输入为“harbin”时,表示用户存在,点击普通按钮提示“检测成功....”,输入其他信息提示“检测失败....”
如果文本输入框没有输入信息,在文本输入框控件上给出错误提示“用户名不能为空”,并获取焦点。
当单选按钮选中,并且用户名检测成功时,会将正确用户名保存,第二次进入时,无需输入用户名,直接显示提示“自动检测成功....”。 未选中时,不保存用户信息。
请根据上述描述级代码上下文补全程序中的空格,使程序正常运行.
public class SharedPreferencesActivity2 extends Activity {
Button btn;
EditText et1;
CheckBox cb;
SharedPreferences pref;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
_________(R.layout.sharedpreferences2);
btn = (Button) findViewById(R.id.button1);
et1 = (EditText) findViewById(R.id.editText1);
cb = (CheckBox) findViewById(R.id.checkBox1);
_________ = getSharedPreferences("person", Context.MODE_PRIVATE);
String myUsername = pref.getString("username", "");
if("harbin".equals(myUsername) ){
Toast.makeText(SharedPreferencesActivity2.this, "自动检测成功....", Toast.LENGTH_SHORT).show();
}
btn.setonClickListener(new OnClickListener() {
public void _________(View arg0) {
String username = et1.getText().toString();
if(TextUtils.isEmpty(username)){
et1._________("用户名不能为空");
et1._________();
}else{
if("harbin".equals(username)){
Toast.makeText(SharedPreferencesActivity2.this, "检测成功....", Toast.LENGTH_SHORT).show();
_________ editor = pref.edit();
if(cb._________()){
editor._________("username", username);
}else{
editor._________("username");
}
editor._________();
}else{
Toast.makeText(SharedPreferencesActivity2.this, "检测失败....", Toast.LENGTH_SHORT).show();
}
}
}
});
}
}
答案:
setContentView
;
pref
;
onClick
;
setError
;
requestFocus
;
Editor
;
isChecked
;
putString
;
remove
;
commit
;
解析:
165、sqlite中开始事务的方法是__________。
答案:
beginTransaction()
;
166、__________是MessageQueue的管理者
答案:
Looper
;
167、启动service有两种方法分别是__________和bindService()。
答案:
startService()
;
168、Notification是通过__________进行管理的
答案:
;
169、对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行( )。
A、 onPause()
B、 onCreate()
C、 onResume
D、 onStart()
答案: D
170、android 中下列属于Intent的作用的是( )。
B、 是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失
C、 可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带
D、 处理一个应用程序整体性的工作
答案: C
171、下列属于SAX解析xml文件的优点的是( )。
A、 将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能
B、 不用事先调入整个文档,占用资源少
C、 整个文档调入内存,浪费时间和空间
D、 不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失
答案: B
172、下面的对自定style的方式正确的是( )。
A、
<resources>
<style name="myStyle">
<item name="android:layout_width">fill_parent</item>
</style>
</resources>
B、
<style name="myStyle">
<item name="android:layout_width">fill_parent</item>
</style>
C、
<resources>
<item name="android:layout_width">fill_parent</item>
</resources>
D、
<resources>
<style name="android:layout_width">fill_parent</style>
</resources>
答案: A
173、在android中使用Menu时可能需要重写的方法有( )。
A、 onCreateOptionsMenu()
B、 onCreateMenu()
C、 onItemSelected()
D、 onStartSelected()
答案: A
174、在android中使用sqliteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是( )。
A、 getWriteableDatabase()
B、 getDatabase()
C、 getAbleDatabase()
D、 getImteDatabase()
答案: A
175、android 关于service生命周期的onCreate()和onStart()说法正确的是( )。
A、 当第一次启动的时候先后调用onStart()和onCreate()方法
C、 如果service已经启动,将先后调用onCreate()和onStart()方法
D、 如果service已经启动,只会执行onStart()方法,不在执行onCreate()方法
答案: D
176、关于ContenValues类说法正确的是( )。
A、 他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值都是基本类型
B、 他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是任意类型,而值都是基本类型
C、 他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名,可以为空,而值都是String类型
D、 他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值也是String类型
答案: A
177、我们都知道Hanlder是线程与Activity通信的桥梁,如果线程处理不当,你的机器就会变得越慢,那么线程销毁的方法是()。
A、 onDestroy()
B、 onClear()
C、 onFinish()
D、 onStop()
答案: A
A、 finish()
B、 抛异常强制退出
C、 System.exit()
D、 onStop()
答案: C
179、下面属于android的动画分类的是( )。
A、 Tweenn
B、 Frame
C、 Draw
D、 Animation
答案: B
180、Android项目工程下面的assets目录的作用是什么( )。
A、 放置应用到的图片资源
B、 主要放置多媒体等数据文件
C、 放置字符串,颜色,数组等常量数据
答案: B
181、关于res/raw目录说法正确的是( )。
A、 这里的文件是原封不动的存储到设备上不会转换为二进制的格式
B、 这里的文件是原封不动的存储到设备上会转换为二进制的格式
C、 这里的文件最终以二进制的格式存储到指定的包中
D、 这里的文件最终不会以二进制的格式存储到指定的包中
答案: A
182、在继承中,关于构造方法的说明,下列说法错误的是( )。
B、 子类可以引用父类中的有参构造方法,使用super关键字
C、 如果子类没有构造方法,则父类无参构造方法作为自已的构造方法
答案: D
183、Activity是Android中的一个组件,提供了一个界面用于和用户交互,使用户可以在界面上进行点击、滑动等操作。
答案: 正确
184、在Android应用程序中 图片应放在raw文件夹下。
答案: 正确
185、在所有的元素中只有<manifest>和<application>是必需的 且只能出现一次。
答案: 错误
186、 assets目录是原始资源目录,该目录中的内容将不会被R类所引用。
答案: 正确
187、px是像素单位,在不同的设备上显示效果相同,因此推荐在布局中使用该单位 。
答案: 错误
188、在设置空间长度等相对距离时,推荐使用dp单位,该单位随设备密度的变化而变化。
答案: 正确
189、sp代表放大像素,主要用于字体大小的显示。
答案: 正确
190、FlowLayout是Android的界面布局方式。
答案: 错误
191、EditText编辑框的提示信息是android:text。
答案: 错误
192、处理Button的点击事件,需要注册OnButtonClickListener()。
答案: 错误
193、要使用ListView,必须为该ListView使用Adpater方式传递数据。
答案: 正确
194、要使用ListView,该布局文件对应的Activity必须继承ListActivity。
答案: 错误
195、ListView中每一项的视图布局既可以使用内置的布局,也可以使用自定义的布局方式。
答案: 正确
196、ListView中每一项被选中时,将会触发ListView对象的ItemClick事件。
答案: 正确
197、Handler是用来发送消息和处理消息的。
答案: 正确
198、启动一个新的activity并且获取这个activity的返回值用_____ 方法启动,并通过 返回值。
答案:
startActivityForResult()
;
setResult()
;
解析:
199、Android的2D动画中有一种____ _动画,通过顺序的播放排列好的图片来实现,类似电影。
答案:
Frame;逐帧
;
200、创建只显示文本的Toast对象时建议使用__ 方法。
答案:
makeText
;
201、android中常用的四个布局是frameLayout(框架布局), ,relativeLayout(相对布局),tableLayout(表格布局)。
答案:
linearLayout ;线性布局
;
解析:
202、属于android中的三种适配器 、 、 BaseAdapter。
答案:
SimpleAdapter
;
ArrayAdapter
;
203、AndroidSDK提供一些开发工具可以把应用软件打包成Android格式文件 。
答案:
APK;apk
;
解析:APK(全称:Android application package,Android应用程序包)是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。
204、Android当中基本的所有的UI都是由 或者其子类实现的。
答案: ;
答案:
adroid:hint
;
206、访问后台数据库,将查询到的信息显示到ListView中。将以下代码空白处补充完整。
public class MyContactsActivity extends Activity {
ListView lv;
Handler handler;
List<Map<String, Object>> contactsList;
SimpleAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_contacts);
lv = (ListView) ______(1)_______________(R.id.lv_contacts_list);
handler = new Handler() {
public void _____(2)_____________(android.os.Message msg) {
switch (msg.what) {
case 1:
String response = (String) msg.obj;
if (!response.equals("")) {
try {
// json数组解析
JSONArray arr = new JSONArray(response);
contactsList = new ArrayList<Map<String, Object>>();
for (int i = 0; i < arr.length(); i++) {
JSONObject contacts = arr.________(3)_____________(i);
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", contacts.getString("name")
+ "(" + contacts.getString("type")
+ ")");
map.put("idInfo", contacts.getString("idtype")
+ ":" + contacts.getString("idnumber"));
map.put("tel", "电话:" + contacts.getString("tel"));
contactsList.add(map);
}
int[] to = new int[] { R.id.tv_name_type, R.id.tv_id_info, R.id.tv_tel };
String[] from = new String[] { "name", "idInfo","tel" };
adapter = new _____(4)___________________(
MyContactsActivity.this, contactsList,
R.layout.item_my_contacts_list, from, to);
lv.setAdapter(adapter);
} catch (JSONException e) {
// Todo Auto-generated catch block
e.printstacktrace();
}
}
break;
}
};
};
new Thread(new Runnable() {
@Override
public void run() {
_______(5)______________ httpClient = new _____(6)________________();
HttpGet httpGet = new HttpGet("http://10.0.2.2:8080/list");
try {
HttpResponse httpResponse = httpClient.______(7)____________(httpGet);
if (httpResponse.getStatusLine(). ______(8)____________== 200) {
String response = ____(9)_________.toString(httpResponse.getEntity(), "utf-8");
Message message = new Message();
message.what = 1;// 返回联系人列表的消息
message.obj = response;
handler.______(10)_______________(message);
}
} catch (ClientProtocolException e) {
// Todo Auto-generated catch block
e.printstacktrace();
} catch (IOException e) {
// Todo Auto-generated catch block
e.printstacktrace();
}
}
}).start();
}
}
答案:
findViewById
;
handleMessage
;
getJSONObject
;
SimpleAdapter
;
DefaultHttpClient;HttpClient
;
DefaultHttpClient
;
execute
;
getStatusCode()
;
EntityUtils
;
sendMessage
;
解析:
207、Activity的生命周期中,第一个被回调的方法是onStart()。
答案: 错误
208、broadcast是Android的四大组件之一。
答案: 错误
209、android:title为Activity指定显示标签。
答案: 错误
210、在开发AppWidget窗口小部件时, 需要继承appwidgetprovider类。
答案: 正确
211、WebView中可以用来处理js中警示,确认等对话框的是WebChromeClient。
答案: 正确
212、使用Android系统进行拍照用到的类有()。
A、 SurfaceView
B、 SurfaceHolder
C、 Callback
D、 Camera
答案: D
213、使用HttpClient的Get方式请求数据时, 可以用()类来构建Http请求 。
A、 Get
B、 URLConnection
C、 HttpGet
D、 HttpPost
答案: C
214、对于AlertDialog的描述不正确的是()。
A、
使用new关键字创建AlertDialog的实例。
B、
C、
setPositiveButton方法是用来添加确定按钮的。
D、
setNegativeButton方法是用来添加取消按钮的。
答案: A
215、____________可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带。
答案:
intent
;
解析:
216、关于service生命周期,当第一次启动的时候先后调用____________和onStart()方法。
答案:
onCreate
;
解析:
217、ScrollView中,可以直接包含____________个组件。
答案:
无数
;
解析:
218、适配器的主要作用是把数据绑定到____________上。
答案:
组件
;
解析:
219、激活Activity的方法是____________。
答案:
startActivity()
;
解析:
220、在Activity的生命周期中,当它从可见状态转向半透明状态时,它的____________方法必须被调用。
答案:
onPause()
;
解析:
221、在android中,ArrayAdapter类是用于把____________绑定到组件上。
答案:
数据
;
解析:
222、android中按钮控件的类名是____________。
答案:
Button
;
解析:
223、android中图像控件的类名是____________。
答案:
ImageView
;
解析:
224、SAX解析xml文件的优点是,不用事先调入整个文档,占用资源____________。
答案:
少
;
解析:
225、Handler实现不同____________间通信的一种机制。
答案:
线程
;
解析:
226、广播可以启动一个____________。
答案:
Activity;activity;ACTIVITY;活动
;
解析:
227、ViewGroup的父类是____________。
答案:
View
;
解析:
228、在main.xml中,定义一个组件时,有两个属性必须写:android:layout_width和____________。
答案:
android:layout_height
;
解析:
229、意图可分为显式意图和____________意图。
答案:
隐式
;
解析:
230、一个android工程可以有多个Activity。
答案: 正确
231、新线程可以和Handler共同使用。
答案: 正确
232、sqliteDatabase类不是用来操作数据库的。
答案: 错误
233、android 中Intent的作用的是,可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带。
答案: 正确
234、电话簿不属于Android体系结构中的应用程序层。
答案: 错误
235、Android应用的gen目录下的R.java被删除后还能自动生成。
答案: 正确
236、默认情况下对一个Activity的对象进行横竖屏切换,该对象的onCreate方法在每次切换时都会执行。
答案: 正确
237、Servie主要负责一些耗时比较长的操作,这说明Service会运行在独立的子线程中。
答案: 错误
238、onDestroy是activity被干掉前最后一个被调用方法。
答案: 正确
239、 HttpClient模块可以访问网络服务程序。
答案: 正确
240、一个Activity就是一个可视化的界面或者看成是控件的容器。
答案: 正确
241、Android SDK主要以java语言为基础。
答案: 正确
242、Android.jar是一个标准的压缩包,其内容包含的是编译后的class,包含了全部的API。
答案: 正确
243、当应用程序中某广播在AndroidMainifest.xml进行注册后,即使该应用程序关闭后,也可以接受操作系统发出的广播信息。以上说法是不对的。
答案: 错误
244、属于android中的三种适配器 EasyAdapter、ArrayAdapter、 BaseAdapter 。
答案: 错误
245、如下程序实现在activity间的带数据跳转,请根据程序逻辑进行填空。
package com.example.info_2_2;
import android.support.v7.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
public class MainActivity extends _____第一空___________{
private ______第二空_______ button1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1=(Button)findViewById(R.id.button1);
button1.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
______第三空________ i=new Intent();
______第四空________.setClass(MainActivity.this, SecondActivity.class);
i.putExtra("info","测试一下吧");
____第五空_______(i);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onoptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onoptionsItemSelected(item);
}
}
如下程序运用了ListView控件技术,请根据程序逻辑进行填空。
package com.example.t1_2;
import android.support.v7.app.ActionBaractivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public _____第六空__________ MainActivity extends ActionBaractivity {
private _____第七空_______ listView1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.____第八空______(savedInstanceState);
setContentView(R.layout.activity_main);
listView1=(ListView)findViewById(R.id.listView1);
______第九空______[] arr1={"孙悟空","猪八戒","牛魔王"};
ArrayAdapter<String>adapter=new ArrayAdapter<String>(this,R.layout.array_item,arr1);
listView1._____第十空________(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onoptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onoptionsItemSelected(item);
}
}
答案:
Activity
;
Button
;
Intent
;
i
;
startActivity
;
class
;
ListView
;
onCreate
;
String
;
setAdapter
;
解析:
246、请写出简单的登录界面的布局文件代码(界面包括:用户名、密码信息及登录按钮)
答案:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名:"/>
<EditText android:id="@+id/username"
android:layout_width="100dp"
android:layout_height="30dp"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密码:"/>
<EditText android:id="@+id/password"
android:layout_width="100dp"
android:layout_height="30dp"
/>
</LinearLayout>
<Button android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登录"/>
</LinearLayout>
解析:
247、Android SDK主要以 语言为基础
答案:
java
;
248、Android之父是。( )
A、 安迪·罗宾
B、 拉里·佩奇
C、 谢尔盖·布林
D、 爱达·拉乌莱斯
答案: A
249、关于android程序结构,下列说法不正确的是。( )
B、 res为资源文件夹
C、 assets目录用来存放原始格式的文件
D、 valuse目录保存文件图像
答案: D
250、Android四大组件是Activity、 、broadcaseReceiver 和 ContentProvider
答案:
Service
;
251、Math cei1(99.1)的结果是
答案:
100
;
252、我们都知道Hanlder是线程与Activity通信的桥梁,如果线程处理不当,你的机器就会变得越慢,那么线程销毁的方法是
答案:
onDestroy()
;
253、下列属于Intent的作用的是。( )
B、 是一段长的生命周期,没有用户界面的程序
C、 可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带
D、 处理一个应用程序整体性的工作
答案: C
254、编程实现具有“登录按钮”的主界面,点击“登录”按钮后打开SecondActivity.
答案:
MainActivity . java
public class MainActivity extendsActivity {
Button btn;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R. layout. activity_ main);
name = (EditText)findViewById(R. id. name);
password = (EditText)findViewById(R. id. password);
btn= (Button)findViewById(R. id. register);
btn. setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity. this,SecondActivity.class);
startActivity(intent);
}
});
}
解析:
255、Intent是android的四大组件之一。
答案: 错误
256、下面属于android的动画分类的有。( )
A、 Tween
B、 Draw
C、 Animation
D、 Scale
答案: A
257、Activity的onStop()和onDestroy()方法效果是差不多的。
答案: 错误
258、Android工程中,放在res下的资源文件都会在R.java文件里生成相应的编号。
答案: 正确
259、Scro1lView可以有 个子view
答案:
1
;
260、设置xm1布局文件中的字体大小一般用 单位
答案:
sp
;
261、Activity从可见状态变为半透明遮盖状态时,生命周期中 方法被调用
答案:
onPause ()
;
262、当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity来执行的回调函数是
答案:
finish()
;
263、定义Linearlayout线性布局时至少设置的三个属性: , android:layout_width 和android:layout_height
答案:
android:orientation
;
264、关于JSON语法规则说法错误的是。( )
A、 数据在名称/值对中
B、 数据由分号分隔
C、 花括号保存对象
D、 方括号保存数组
答案: B
265、我们用int来定义一个整数,用 来定义一个字符类型,称为原始数据类型。
答案:
char
;
266、WebView中可以用来处理js中警示,确认等对话框的是
答案:
WebChromeClient
;
267、Android解析xm1的方法中,将整个文件加载到内存中进行解析的是
答案:
DOM
;
268、使用Android系统进行拍照用到的类有Callback和Camera
答案: 错误
269、关于SAX解析XML数据说法错误的是。( )
A、 与DOM不同,SAX提供的访问模式是一种倒序模式,这是一种快速读写XML数据的方式
B、 SAX不能对文档进行随机访问
C、 SAX只遍历文档一次
D、 需要解析大型文档时可以使用SAX解析
答案: A
270、在AsyncTask中doInBackground()方法是负责执行那些很耗时的后台计算工作的
答案: 正确
271、使用HttpUrlConnection实现移动互联时,设置读取超时属性的方法是
答案:
setReadTimeout()
;
272、在开发AppWidget窗口小部件时可以使用 ImageView,WebView,GridView,Button等组件
答案: 错误
273、若希望在点击网页中超链接时,在当前WebView 中显示该网页,则需要覆盖WebViewClient类 方法。
答案:
shouldOverrideUrlLoading()
;
274、Android中网络互连中需要获取状态码,根据状态码来判断请求是否已经完成, 状态码表示请求完成
答案:
200
;
275、在添加第一个appwidget窗口小部件时,会执行的方法是 onReceive,onEnabled和onUpdate
答案: 正确
276、数据源如果weisqlite数据库,查出信息最适合的适配器是ArrayAdapter
答案: 错误
277、在每次调用sqliteDatabase 的getWritableDatabase0方法时,会执行sqliteOpenHelper 的onCreate方法。
答案: 错误
278、Handler是实现不同进程间通信的一种机制.
答案: 错误
279、可以使用new关键字创建AlertDialog的实例
答案: 错误
280、在使用一个ImageSwitcher之前,不一定要调用setFactory方法
答案: 错误
解析:
281、setoutAnimation是资源文件从ImageSwitcher里消失的时候要实现的动画效果
答案: 正确
282、使用HttpClient的Get方式请求数据时,可以HttpGet类来构建Http请求
答案: 正确
283、使用HttpURLConnection的Get方式请求数据时,connection connect()是必须设置的
答案: 正确
284、在开发AppWidget窗口小部件时,需要继承AppWidgetConfigure类
答案: 错误
285、android中文件操作模式中表示只能被本应用使用,写入文件会覆盖的是MODE_ PRIVATE
答案: 正确
286、
以下代码是我的12306项目中,点击上图左面的列表中任一item,跳转到右面编辑界面的代码,请补充代码中的空白
public class MyContactEditactivity extends Activity {
ListView lv;
Button btn_save; //保存按钮
SimpleAdapter adapter; //适配器
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_contact_edit);
lv = (ListView) findViewById(R.id.lv_contact_edit);
btn_save = (Button) findViewById(R.id.btn_contact_editsave);
// 接收数据
【1】 i =getIntent();
Map<String, Object> contact = (Map<String, Object>) i.getSerializableExtra("row");
List<Map<String, Object>> data = 【2】 ;
// row1:姓名
Map<String, Object> row1 = new HashMap<String, Object>();
String name = (String) contact.get("name");
row1.put("key1", 【3】 );
row1.put("key2", name.split("\\(")[0]);
row1.put("key3", R.drawable.forward_25);
data.add(row1);
// row2:证件类型
Map<String, Object> row2 = new HashMap<String, Object>();
String str = (String) contact.get("idcard");
row2.put("key1", "证件类型");
row2.put("key2", 【4】 );
row2.put("key3", null);
data.add(row2);
// row3:证件号码
Map<String, Object> row3 = new HashMap<String, Object>();
str = (String) contact.get("idcard");
row3.put("key1", "证件号码");
row3.put("key2", str.split(":")[1]);
row3.put("key3", null);
【5】
// row4:乘客类型
Map<String, Object> row4 = new HashMap<String, Object>();
str = (String) contact.get("name");
row4.put("key1", "乘客类型");
row4.put("key2", str.split("\\(")[1].split("\\)")[0]);
row4.put("key3", R.drawable.forward_25);
data.add(row4);
// row5:电话
Map<String, Object> row5 = new HashMap<String, Object>();
str = (String) contact.get("tel");
row5.put("key1", "电话");
row5.put("key2", str.split(":")[1]);
row5.put("key3", R.drawable.forward_25);
data.add(row5);
//适配器
adapter = new SimpleAdapter(this, 【6】 , R.layout.item_my_contact_edit,
new String[]{ 【7】 , 【8】 , 【9】 },
new int[]{R.id.tv_item_contactedit_key,R.id.tv_item_contactedit_value,R.id.iv_item_contactedit_flag});
【10】
}
}
答案:
Intent
;
new ArrayList<Map<String, Object>>();
;
"姓名"
;
str.split(":")[0]
;
data.add(row3);
;
data
;
"key1"
;
"key2"
;
"key3"
;
lv.setAdapter(adapter);
;
287、Android SDK 提供多种开发所必要的工具与________________________。
答案:
API
;
288、Android系统集成了基于开源WebKit引掣的浏览器。( )
答案: 正确
解析:
289、android中使用sqliteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库进行管理的方法可以是。( )
A、 getsqliteDatabase()
B、 getTableDatabase()
C、 getWriteableDatabase()
D、 getDatabase()
答案: C
290、下面关于Android中定义style和theme的描述错误的是。( )
A、 都可以减少重复属性设置
B、 theme可以应用在某一个单独的View中
C、 style是针对窗体元素级别的,改变指定控件或者Layout的样式
D、 android:theme="@android:style/Theme.Dialog" ,将一个Activity显示为对话框模式
答案: B
291、下列哪个是AbsoluteLayout中特有的属性。( )
A、 android:layout_height
B、 android:layout_x
C、 android:layout_above
D、 android:layout_toRightOf
答案: B
292、使用MediaPlayer播放保存在sdcard上的mp3文件时错误的是。( )
A、 需要设置访问sdcard的权限
B、 可以使用MediaPlayer.create()方法创建MediaPlayer对象
答案: C
A、 使用onoptionsItemSelected(MenuItem item)响应
B、 使用onMenuItemSelected(int featured , MenuItem item)响应
C、 使用onMenuItemClick(MenuItem item)响应
D、 使用onCreateOptionsMenu(Menu menu)响应
答案: D
294、下列不属于Service生命周期的方法是。( )
A、 onStop()
B、 onCreate()
C、 onDestory()
D、 onStart()
答案: A
295、在多个应用中读取共享存储数据时,需要用到的query方法是哪个对象的方法。( )
A、 ContentResolver
B、 ContentProvider
C、 Cursor
D、 sqliteHelper
答案: A
296、下列关于Android中远程服务说法错误的是。( )
A、 IPC为进程间通信机制
C、 aidl对应的接口的方法前面不能加访问权限修饰符
D、 AIDL语言的语法与Java语言的接口定义非常相似,唯一不同之处是:AIDL允许定义函数参数的传递方向
答案: B
297、关于广播的作用,下列说法正确的是。( )
B、 它不可以启动一个service
C、 它不可以启动一个activity
D、 广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件
答案: D
298、DDMS是Android系统中内置的__________________工具。
答案:
调试
;
299、Android中常用的布局有FrameLayout、LinearLayout、TableLayout、AbsoluteLayout、_____________________。
答案:
RelativeLayout
;
300、Android中的四大组件有Activity、Service、broadcast、_______________________。
答案:
ContentProvider
;
301、当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity来执行的回调函数是________________________。
答案:
startActivityForResult(Intent intent, int requestCode)
;
302、Intent可以划分成显式意图和_____________________。
答案:
隐式意图
;
303、java.io包中ObjectInputStream和__________________________类主要用于对对象(Object)的读写。
答案:
ObjectOutputStream
;
304、创建对话框时,设置为单选对话框的方法是_______________________________。
答案:
setSingleChoiceItems()
;
305、给ListView控件的子项添加点击事件监听器的方法为_________________________。
答案:
setonItemClickListener()
;
306、Android中主要功能是向用户提供包含年、月、日的日期数据并允许用户对其修改的控件是____________________。
答案:
DatePicker
;
307、_______________________自动完成文本框,它继承自EditText,并和EditText一样可以输入文本,它可以根据用户输入的文本弹出一个智能提示的下拉列表。
答案:
AutoCompleteTextView
;
308、给TextView控件的高度设置为“3”的代码为_____________________________。
答案:
android:lines="3"
;
309、使用WebView控件加载HTML页面的方法为____________________________。
答案:
loadUrl()
;
310、在WebView中,当JS解析Json脚本,可以使用________________方法调用JavaScript的编译器把JSON文本转变成对象。
答案:
eval()
;
311、Android中在AndroidManifest.xml中设置activity的横竖屏的属性为__________________________________。
答案:
android:screenorientation
;
312、Android可以直接使用编译后的类文件(.class)。( )
答案: 错误
解析:
主页面布局
Item布局
MainActivity
答案:
lv= (ListView) findViewById(R.id.lv);
;
Maprow = new HashMap();
;
data.add(row);
;
this或者MainActivity.this
;
new String[] { "name", "age","tel" }
;
new int[] { R.id.tv1,R.id.tv2, R.id.tv3}
;
lv.setAdapter(adapter);
;
new OnItemClickListener()
;
String name = data.get[position].get("name").toString();
;
Toast.makeText(MainActivity.this,name,0).show();
;
解析:
314、完成Activity的全部创建过程。
注:(Activity名称为HelloActivity,需要写出Activity的类,类中方法以及配置,加载页面布局名称为xxx,标题为xxx)
答案:
类
public class HelloActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xxx);
}
}
配置
<activity
android:name=".HelloActivity"
android:label="xxx" >
</activity>
解析:
315、当应用程序中某广播在AndroidManifest.xml文件中进行注册后,即使该应用程序关闭后,也可以接收操作系统发出的广播信息。 ( )
答案: 正确
解析:
316、在Android中ContentProvider是一个特殊的存储数据的类型,它提供了一套标准的接口来获取、操作数据。( )
答案: 正确
解析:
317、在Android中的sqlite采用的是动态数据类型,会根据存入值自动判断。sqlite有五种数据类型。( )
答案: 正确
解析:
318、给一个TextView控件设置红色字体,可以使用方法setTextColor("0xffff0000");( )
答案: 错误
解析:
319、在AndroidManifest.xml中只有<manifest>和<application>是必需的,且只能出现一次。( )
答案: 错误
解析:
320、App Widget是Application Widget的缩写,特指在android手机桌面上放置的控件,App Widget和我们自己写的程序运行在同一进程当中的。( )
答案: 错误
解析:
321、2D图形接口实际上是Android图形系统的基础, GUI上的各种可见元素也是基于2D图形接口构建的。( )
答案: 正确
解析:
322、TraceView是AndroidSDK里面自带的工具,用于对Android的应用程序以及Framework层的代码进行性能分析。( )
答案: 正确
解析:
323、LogCat是用来获取系统日志信息的工具,并可以显示在Eclipse集成开发环境中,其中Log.i()用来记录详细信息。( )
答案: 错误
解析:
324、ArrayAdapter可以用XML文件作为数据源。( )
答案: 正确
解析:
325、当系统资源不足时,即使Activity不处于onStop状态时,也有可能被系统销毁。( )
答案: 正确
解析:
326、在Android中,Tween动画能实现的动画效果只包括alpha变换,rotate变换。( )
答案: 错误
327、ContentValues与Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名是String类型,而值都是基本类型。( )
答案: 正确
328、如下Android程序实现点击ListView子项触发不同事件。请按照提示补全下划线处的空白代码。
public class MainActivity extends Activity {
ListView navList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
__________________(1)_______________(R.layout.activity_main); //设置使用布局文件activity_main
navList = (ListView) _______________(2)________________(R.id.navList); //根据id获得ListView控件
String [] data = {"我的联系人","我的账户","我的密码"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,data);
navList._______________(3)____________ __(adapter); //ListView 加载适配器
final Intent i = new Intent();
navList._______________(4)________________(new OnItemClickListener() { //给ListView子项加点击事件
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
case 0: //我的联系人
i.setClass(MainActivity.this, MyContactActivity.class);
startActivity(i);
break;
case 1: //我的账户
i.setClass(MainActivity.this, MyAccountActivity.class);
startActivity(i);
break;
case 2: //我的密码
final EditText oldPassword = new EditText(MainActivity.this);
new AlertDialog.Builder(MainActivity.this)
.setIcon(android.R.drawable.ic_dialog_info)
__________________(5)_______________________ //给对话框设置标题为 “请输入原密码”
__________________(6)_______________________ // 将EditText控件添加到对话框中
__________________(7)__________________("确定", new DialogInterface.OnClickListener() { //设置确定按钮
@Override
public void onClick(DialogInterface dialog, int which) {
String password = oldPassword.getText().toString();
if(TextUtils.isEmpty(password)) {
________________(8)_________________ //给EditText设置错误信息为“原密码不能为空”
________________(9)_________________ //给EditText设置获取焦点
}else {
Intent i = new Intent(MainActivity.this,MyPasswordActivity.class);
startActivity(i);
}
}
})
.setNegativeButton("取消", null)
___________(10)___________; //设置对话框显示
break;
}
}
});
}
}
答案:
setContentView
;
findViewById
;
setAdapter
;
setonItemClickListener
;
.setTitle("请输入原密码")
;
.setView(oldPassword)
;
.setPositiveButton
;
oldPassword.setError("原密码不能为空");
;
oldPassword.requestFocus();
;
show()
;
解析:
329、请用代码实现点击按钮,向服务端发送get请求,及请求参数name=admin,并且接收服务端返回的数据字符串“<GET:result>”。要求:使用 AsyncTask 、HTTPGet、HttpClient等 知识点完成此题,只需写出Android部分即可。
答案:
public class MainActivity extends Activity {
HttpClient client;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
client = new DefaultHttpClient();
Button btnRead = (Button) findViewById(R.id.btn_login);
btnRead.setonClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
read("http://10.0.2.2:8080/androidGet?name=admin");
}
});
}
public void read(String url) {
new AsyncTask<String, Void, String>() {
@Override
protected String doInBackground(String... param) {
HttpGet get = new HttpGet(param[0]);
try {
HttpResponse response = client.execute(get);
String value = EntityUtils.toString(response.getEntity());
System.out.println(value);
return value;
} catch (ClientProtocolException e) {
e.printstacktrace();
} catch (IOException e) {
e.printstacktrace();
}
return null;
}
}.execute(url);
}
}
解析:
330、页面上现有ProgressBar控件progressBar(id为:progressBar1),请用线程以10秒的的时间完成其进度显示工作,当完全显示完毕后,弹出显示“已完成”提示。要求使用 Thread + Handler 模式操作。
答案:
public class TestDemoActivity extends Activity {
ProgressBar pbar;
boolean flag = true;
Handler myHandler = new Handler{
@Override
public void handleMessage(Message msg) {
Toast.makeText(TestDemoActivity.this, "已完成...", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testdemo);
pbar = (ProgressBar) findViewById(R.id.progressBar1);
pbar.setMax(100);
new Thread(new Runnable(){
public void run(){
int count=0;
while(flag){
count += 10;
pbar.setProgress(count);
if(count==pbar.getMax()){
flag = false;
Message msg = myHandler.obtainMessage();
myHandler.sendEmptyMessage(1);
}
//如果没有走到头,停留1秒
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printstacktrace();
}
}
}
}).start();
}
}
解析:
331、以下android程序中有五处理错误,请找出来。
1 pack com.example.t1_4;
2 import java.util.ArrayList;
3 import java.util.HashMap;
4 import java.util.List;
5 import java.util.Map;
6 import android.support.v7.app.ActionBaractivity;
7 import android.app.Activity;
8 import android.os.Bundle;
9 import android.os.Handler;
10 import android.os.Looper;
11 import android.os.Message;
12 import android.view.Menu;
13 import android.view.MenuItem;
14 import android.view.View;
15 import android.widget.AdapterView;
16 import android.widget.AdapterView.OnItemClickListener;
17 import android.widget.AdapterView.OnItemSelectedListener;
18 import android.widget.ListView;
19 import android.widget.SimpleAdapter;
20 import android.widget.Toast;
21 public class MainActivity implements Activity {
22 private SimpleAdapter simpleAdapter;
23 private ListView listView;
24 @Override
25 protected void onCreate(Bundle savedInstanceState) {
26 int[]names={"虎头","弄玉","李清照","李白"};
27 String []descs={"可爱的小孩","一个擅长音乐的女孩","一个擅长文学的女性","浪漫主义诗人"};
28 int[] imageIds={R.drawable.a1,R.drawable.a2,R.drawable.a3,R.drawable.a4};
29 super.onCreate(savedInstanceState);
30 setContentView(R.layout.activity_main);
31 List<Map<String,Object>>listItems=new ArrayList<Map<String,Object>>();
32 for(int i=0;i<names.length;i++){
33 Map<String,Object>map=new HashMap<String,Object>();
34 map.put("header",imageIds[i]);
35 map.put("personName",names[i]);
36 map.set("desc",descs[i]);
37 listItems.remove(map);
38 }
39 simpleAdapter=new SimpleAdapter(this, listItems, R.layout.simple_item, new String[]{"personName","header","desc"}, new int[]{R.id.name,R.id.header,R.id.desc});
40 listView=(ListView)findViewById(R.id.listView1);
41 listView.setAdapter(simpleAdapter);
42 listView.setonItemClickListener(new OnItemClickListener(){
43 @Override
44 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
45 Toast.makeText(MainActivity.this,"~~第"+(position+1)+"项选中了!",Toast.LENGTH_LONG).show();
46 }
47 });
48 }
49}
答案:
1第1行pack改为package
2第21行implements改为extends
3第26行int改为String
4第36行set改为put
5第37行remove改为add
解析:
332、以下代码的功能是:使用左右滑动(ViewPager+ActionBar+Fragment)完成车票预定、订单管理、我的三大功能的切换。
程序执行效果图如下:
代码如下:
答案:
第7行有错误,actionbar应改为bar
第23行有错误,“车票1”应改为“车票”
第24行有错误,“订单2”应改为“订单”
第25行有错误,“@我的”应改为“@我的”
第47行有错误,应改为return 3;
解析:
333、请根据以下代码分析并画出程序执行后的效果图(代码中颜色可忽略)
答案:
画出ListView
ListView中每个item的文字写对
“退出登录”按钮画对 (颜色可忽略)
解析:
334、有一个SSM项目,实现了用户注册功能,请按照提示补全下划线处的空白代码。
页面 useradd.jsp :
<form action="_________(1)___________" method="post"> //form表单提交请求URL
用户名:<input type="text" name="userName" value="${user.userName }"><br>
密码:<input type="text" name="password" value="${user.password }"><br>
备注:<input type="text" name="note" value="${user.note }"><br>
____________________(2)_______________________ //写出提交按钮标签
</form>
__________(3)__________//根据控制层相应方法执行结果,在页面上显示注册成功与否信息,使用EL表达式
控制层:
____________(4)____________//注解控制层
@RequestMapping("/user")
public class UserController {
____________(5)____________//注解对mapper进行注入
UserInfoMapper mapper;
@RequestMapping("/userAdd")
public String addUser(___________(6)____________UserInfo user,Model model) {//使用注解对user对象进行数据回显
int result = mapper.addUser(user);
if(result >0) {
model.addAttribute("msg", "注册成功");
}else {
model.addAttribute("msg", "注册失败");
}
return "useradd";
}
}
UserInfoMapper类:
public interface UserInfoMapper {
public int addUser(UserInfo user);
}
UserInfoMapper.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.neusoft.mapper.UserInfoMapper">
<insert id="__________(7)___________" parameterType="UserInfo" >//根据接口写出insert标签中id的值
<_________(8)_________ order="AFTER" keyProperty="id" resultType="int" > //写出查询自增主键的标签
select ______________(9)_____________ //返回最后插入记录的id
</__________(10)___________>
insert into userInfo (userName,password,note) values (#{userName}, #{password},#{note})
</insert>
</mapper>
答案:
user/userAdd
;
< input type="submit" value="注册" />
;
${msg}
;
@Controller
;
@Autowired 或者 @Resource
;
;
addUser
;
selectKey
;
last_insert_id()
;
selectKey
;
解析:
335、有一个SpringBoot+MyBatis的项目,如下代码实现了登录功能,请按照提示补全下划线处的空白。
<form action="login" ______________(1)_______________ > //此表单发起post请求,请写出相应代码
用户名:<input type="text" name="username">
密码:<input type="password" name="password">
__________________(2)______________________ //请写出form表单中提交按钮标签
</form>
登录控制层:
public class LoginController {
____________________(3)______________________ //根据题中代码请写出相应处理请求地址映射的注解
public String getLogin(String username,String password,Model model) {
if("admin".equals(username) && "123".equals(password)) {
return "main";
}else {
model.addAttribute("msg", "用户名或者密码错误");
return "login";
}
}
配置文件 application.properties :
_________________(4)__________________//配置视图解析器前缀为 /
_________________(5)__________________//配置视图解析器后缀为 .jsp
_________________(6)__________________//设置上下文路径为 /MySpringBootProject
______________(7)_______________//注解标明此类为配置类
public class MyConfig implements _________(8)_________ { //实现相关接口可以完成拦截器注册等功能
@Override
public void addInterceptors(InterceptorRegistry registry) { //此方法为完成注册拦截器
____________________________________(9)___________________________________________
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {//此方法为完成设定固定请求跳转功能
____________________________________(10)___________________________________________
}
public class MyInterceptor implements handlerinterceptor{
//重写三个方法,此处略
}
答案:
method="post"
;
<input type="submit" value="登录">
;
@RequestMapping("/login")
;
spring.mvc.view.prefix=/
;
spring.mvc.view.suffix=.jsp
;
server.servlet.context-path=/MySpringBootProject
;
@Configuration
;
;
registry.addInterceptor(new MyInterceptor()).addpathPatterns("/**").excludePathPatterns("/login");
;
registry.addViewController("index.html").setViewName("login");
;
解析:
336、以下程序为My12306项目中,实现“我的”模块代码,请根据注释与代码逻辑,找出其中5处错误或者不当之处。
1 public class MyFragment extends Fragment {
2 ListView navList; //"我的"模块导航列表
3 @Override
4 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
5 return inflater.inflate(R.layout.fragment_my, container, false);
6 }
7 @Override
8 public void onActivityCreated(Bundle savedInstanceState) {
9 super.onActivityCreated(savedInstanceState);
10
11 navList = getActivity().findView(R.id.navList); //获取ListView控件
12
13 String [] data = {"我的联系人","我的账户","我的密码"};
14
15 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data);
16
17 navList.setAdapter(adapter);
18
19 Intent i = new Intent(); //创建意图Intent对象
20
21 navList.setonClickListener(new OnItemClickListener() { //给ListView子项添加点击事件
22 @Override
23 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
24 switch (id) {
25 case 0: //我的联系人
26 i.setClass(getActivity(), MyContactActivity.class);
27 startActivity(i);
28 break;
29 case 1: //我的账户
30 i.setClass(getActivity(), MyAccountActivity.class);
31 startActivity(i);
32 break;
33 case 2: //我的密码
34 i.setClass(getActivity(), MyPasswordActivity.class);
35 startActivity(i);
36 break;
37 }
38 }
39 });
40 }
41 }
答案:
第11行有错误,应改为navList = getActivity().findViewById(R.id.navList);
第15行有错误,应将this改成getActivity()
第19行有错误,应改为 final Intent i = new Intent();
第21行有错误,应改为 setonItemClickListener
第24行有错误,应将id改成position
解析:
注:(user的样式为,administrator为);
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:src="@drawable/user" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:gravity="center" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/administrator" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="请输入用户名!" >
</EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:gravity="center" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/administrator" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="请输入密码!"
>
</EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:orientation="horizontal"
android:gravity="center" >
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="登录"
/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="注册"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:orientation="horizontal" >
<CheckBox
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:checked="true"
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="16sp"
android:text="忘记密码??" />
</LinearLayout>
</LinearLayout>
答案:
解析:
338、如下为安卓程序发送ConnectionGet请求获取结果展示,请求如下代码中找出5出问题。并说出原因。
注:url为EditText控件,从中获取请求路径。
答案:
url.getText()返回的结果不是Stirng不能用String接收。
responseCode的响应结果为200不是400。
bs对象没有关闭释放资源。
Toast.makeText(this, result, 0).show();在匿名内部类不能使用this对象
new Thread() 没有start方法,线程不能启动。
解析:
339、请绘制Android程序中Activity组件的生命周期流程图。
答案:
解析:
340、小刘是一家大型水果店的库管员,由于季节变化需要清理库存部分水果。在仓库管理手机App上,需要对水果列表点选后,进行删除。
以下是相关的Android程序代码,请找出其中的错误并进行更改。
答案:
1行更改为:父类应为 Activity
10行更改为:R.id.listView1
17行更改为:参数位置错误,应为:android.R.layout.simple_list_item_1,arr
27行更改为:需要添加 final 关键词
35行更改为:调用方法应该为 notifyDataSetChanged()
解析: