团队级软件开发理论与技术&& 管理信息系统项目管理与质量

团队级软件开发理论与技术&& 管理信息系统项目管理与质量

 

1、Activity是android程序的呈现层,显示可视化的用户界面,并接收与用户交互所产生的界面事件。

 

答案: 正确

2、创建Activity,实现布局,通过onCreate()方法设置布局。

 

答案: 正确

3、sqlite是轻量级的关系型数据库

答案: 正确

4、以下关于sqliteOpenHelper的描述,错误的是()。

A、 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

26、sqlite通过________方法来执行sql语句

答案:

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

48、关于.aidl文件,以下叙述错误的是()。

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中配置

D、 动态注册需要在应用退出时候接触广播的注册

答案: A

54、下面关于broadcastReceiver错误的是

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方法调用下列说法不正确的是

A、 aidl对应的接口名称不能与aidl文件名相同

B、 aidl的文件内容类似java代码  

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、 调用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()方法

C、 当第一次启动的时候只会调用onCreate()方法  

D、 如果Service没有启动,不能调用StopService停止服务。  

答案: B

78、使用MediaPlayer播放保存在sdcard上的mp3文件时,应如何操作

A、 需要使用MediaPlayer.create方法创建MediaPlayer

B、 直接newMediaPlayer即可  

C、 需要调用setDataSource方法设置文件

D、 直接调用start方法,无需设置文件

答案: C

79、使用AIDL完成远程service方法调用下列说法不正确的是?

A、 aidl对应的接口名称不能与aidl文件名相同

B、 aidl的文件内容类似java代码  

C、 创建一个Service,在服务的onBind(Intentintent)方法中返回实现了aidl接口的对象

D、 aidl对应的接口的方法前面不能加访问权限修饰符

答案: A

80、关于广播的作用,正确的说法是

A、 它是用接收系统发布的一些消息的

B、 它可以帮助service修改用户界面

C、 它不可以启动一个Service

D、 它可以启动一个Activity  

答案: D

81、关于sqlite数据库,不正确的说法是

A、 sqliteOpenHelper类主要是用来创建数据库和更新数据库

B、 sqliteDatabase类是用来操作数据库的  

C、 在每次调用sqliteDatabase的getWritableDatabase()方法时,会执行sqliteOpenHelper的onCreate方法。  

D、 当数据库版本发生变化时,可以自动更新数据库结构

答案: 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()方法

B、 request对象的getParameter()方法

C、 session对象的getAttribute()方法

D、 session对象的getParameter()方法

答案: B

92、多线程下载和断点续传使用什么(  )类是对文件进行操作。

A、 FileInputStream

B、 FileOutputStream

C、 InputStreamReader

D、 RandomAccessFile

答案: D

93、关于sqlite3数据库的操作,下面说法不正确的是

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

98、下面哪个方法不是发送广播消息的方法

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、关于广播以下陈述正确的是

A、 广播接收器只能在配置文件注册

B、 广播接收器注册后不能注销

C、 广播接收器只能接收自定义的广播消息

D、 广播接收器可以在Activity中单独注册与注销  

答案: D

109、下面哪种进程最重要,最后被销毁?

A、 服务进程

B、 后台进程

C、 可见进程

D、 前台进程

答案: D

110、SharedPreferences和Preferences的修改支持事务吗?

A、 支持不支持

B、 不支持不支持

C、 不支持支持

D、 支持支持  

答案: 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说的法不正确的是

A、 Activity是为用户操作而展示的可视化用户界面

B、 一个应用程序可以有若干个Activity

C、 Activity可以通过一个别名去访问

D、 Activity可以表现为一个漂浮的窗口

答案: C

136、处理菜单项单击事件的方法不包含

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

140、下列哪一项是manifest文件功能

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

144、Activity生命周期最开始的方法调用顺序是?

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为checkBox1)

普通按钮(进行用户是否存在检测,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是通过__________进行管理的

答案:

notificationmanager

169、对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(   )。

A、 onPause() 

B、 onCreate() 

C、 onResume 

D、 onStart() 

答案: D

170、android 中下列属于Intent的作用的是(   )。

A、 实现应用程序间的数据共享 

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()方法 

B、 当第一次启动的时候只会调用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

178、下面退出Activity错误方法是(   )。

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、 放置字符串,颜色,数组等常量数据 

D、 放置一些与UI相应的布局文件,都是xml文件 

答案: B

181、关于res/raw目录说法正确的是(   )。

A、 这里的文件是原封不动的存储到设备上不会转换为二进制的格式 

B、 这里的文件是原封不动的存储到设备上会转换为二进制的格式 

C、 这里的文件最终以二进制的格式存储到指定的包中 

D、 这里的文件最终不会以二进制的格式存储到指定的包中 

答案: A

182、在继承中,关于构造方法的说明,下列说法错误的是(   )。

A、 子类无条件的继承父类的无参构造方法

B、 子类可以引用父类中的有参构造方法,使用super关键字

C、 如果子类没有构造方法,则父类无参构造方法作为自已的构造方法

D、 如果子类有无参构造方法,而父类的无参构造方法则被覆盖

答案: 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都是由                                 或者其子类实现的。

答案: ;

205、为EditText编辑框设置提示信息的属性是                   。

 

答案:

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、

对话框的显示需要调用show方法

 

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程序结构,下列说法不正确的是。(    )

A、 gen为保存自动生成R资源类文件

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的作用的是。(    )

A、 实现应用程序间的数据共享

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、 可以直接调用start方法,无需设置文件

D、 可以调用setDataSource()方法设置文件

答案: C

293、处理菜单项单击事件的方法包括。(    )

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为进程间通信机制

B、 aidl对应的接口名称不能与aidl文件名相同

C、 aidl对应的接口的方法前面不能加访问权限修饰符

D、 AIDL语言的语法与Java语言的接口定义非常相似,唯一不同之处是:AIDL允许定义函数参数的传递方向

答案: B

297、关于广播的作用,下列说法正确的是。(    )

A、 他可以帮助service修改用户界面

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)。(    )

答案: 错误
解析:

313、根据上下文内容进行代码填空。

注:(listview显示内容

页面布局

 

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)完成车票预定、订单管理、我的三大功能的切换。

程序执行效果图如下:

 

请指出代码中的5处不当之处或错误之处。

代码如下:

 

 

 

答案:

第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

@modelattribute

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

该配置类MyConfig实现拦截注册和设定固定请求跳转

______________(7)_______________//注解标明此类为配置类

public class MyConfig implements _________(8)_________ {   //实现相关接口可以完成拦截注册功能

       @Override

       public void addInterceptors(InterceptorRegistry registry) {  //此方法为完成注册拦截

            //注册拦截器,并且拦截除了"/login"之外的所有请求

              ____________________________________(9)___________________________________________

       }

       @Override

       public void addViewControllers(ViewControllerRegistry registry) {//此方法为完成设定固定请求跳转功能

            //当访问index.html时直接跳转登录页面

             ____________________________________(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

WebMvcConfigurer

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    }

答题举例说明:第XX行有错误,应该改为XX

 

答案:

第11行有错误,应改为navList = getActivity().findViewById(R.id.navList);  

第15行有错误,应将this改成getActivity()

第19行有错误,应改为 final Intent i = new Intent();

第21行有错误,应改为 setonItemClickListener

第24行有错误,应将id改成position


解析:

337、根据如下页面布局代码画出对应页面布局的样式。

注:(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"

        android:text="自动登录" />

    <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()

 


解析:

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...