團隊級軟件開發理論與技術&& 管理信息系統項目管理與質量
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被暫?;蛘咄V梗⑶宜馁Y源被操作系統回收
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()
解析:
浙公網安備 33010602011771號