版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、1 SharedPreferences的使用 :能夠使用SharedPreferences進行存儲數(shù)據(jù)(數(shù)據(jù)來源可多種,比如來源于輸入文本),能夠讀出存儲數(shù)據(jù),并顯示(比如顯示在textView中)存儲時,看清楚指定的存儲文件名、看清要求 <TextView android:id="+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18sp" and
2、roid:text="No Data" /> <Button android:id="+id/button1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="onClick" android:text="Write Data" /> <Button android:id="+id/button2" an
3、droid:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="onClick" android:text="Read Data" />MainActivity.java:package com.example.sharedpre;import android.os.Bundle;import android.app.Activity;import android.content.SharedPref
4、erences;import android.view.Menu;import android.view.View;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity private TextView tv;String s;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.
5、layout.main);tv=(TextView)findViewById(R.id.textView1);public void onClick(View v)SharedPreferences sp=this.getPreferences(MODE_PRIVATE);switch(v.getId()case R.id.button1:sp.edit().putString("hello", "Mr.Liu").commit();Toast.makeText(MainActivity.this, "Write Data is Success
6、ed!", 1000).show();break;case R.id.button2:s=sp.getString("hello", "");tv.setText(s);break;數(shù)據(jù)存儲位置:DDMS->File Explore->data->data->(package名稱)->Shared_prefs->MainActivity.xml2、OptionMenu,XML的建立,onCreateOptionsMenu()、onOptionsItemSelected()的方法使用Menu->main.
7、xml:<menu xmlns:android=" > <item android:id="+id/item1" android:icon="drawable/a5" android:title="color1"> </item> <item android:id="+id/item2" android:icon="drawable/a6" android:title="color2"> </item> &
8、lt;item android:id="+id/item3" android:icon="drawable/a7" android:title="color3"> </item></menu>String.xml: <string-array name="countrys"> <item >American</item> <item >China</item> <item >England</item>
9、 <item >Chile</item> <item >Chad</item> </string-array> <color name="color1">#ff006e</color> <color name="color2">#6eff00</color><color name="color3">#006eff</color>MainActivity.java:/自定義視圖:ListView lv=nu
10、ll;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);lv=new ListView(this);ArrayAdapter<String>adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,getResources().getStringArray(R.array.countrys);lv.setAdapter(adapter);setC
11、ontentView(lv);/ onCreateOptionsMenu:Overridepublic boolean onCreateOptionsMenu(Menu menu) / TODO Auto-generated method stubMenuInflater in=new MenuInflater(this);in.inflate(R.menu.main, menu);return super.onCreateOptionsMenu(menu);/ onOptionsItemSelected:Overridepublic boolean onOptionsItemSelected
12、(MenuItem item) / TODO Auto-generated method stubswitch(item.getItemId()case R.id.item1:lv.setBackgroundResource(R.color.color1);break;case R.id.item2:lv.setBackgroundResource(R.color.color2);break;case R.id.item3:lv.setBackgroundResource(R.color.color3);break;return super.onOptionsItemSelected(item
13、);3、 意圖有(直接)意圖和間接意圖之分。4、(Canvas)類包含一組矢量繪圖方法,可以完成直線、曲線、等路徑的繪制。5、Android項目調(diào)用MediaPlayer類中的 (start )方法播放音樂。6、Android項目中,用完數(shù)據(jù)庫后,調(diào)用(close)方法關閉數(shù)據(jù)庫。7、Bitmap類的構造函數(shù)是私有的,外面并不能實例化,需要通過(BitmapFactory)類的一些方法來實現(xiàn)。8、MediaPlayer主要用于播放音頻,它與(SurfaceView)視圖控件結合可以實現(xiàn)視頻的輸出。9、進行圖像采集或視頻錄制時,常使用(MediaRecorder)類的一些方法和屬性。10、Lis
14、tView的使用1ListVeiw 用來展示列表的View。2適配器 用來把數(shù)據(jù)映射到ListView上的中介。3數(shù)據(jù) 具體的將被映射的字符串,圖片,或者基本組件。根據(jù)列表的適配器類型,列表分為三種,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter其中以ArrayAdapter最為簡單,只能展示一行字。SimpleAdapter有最好的擴充性,可以自定義出各種效果。SimpleCursorAdapter可以認為是SimpleAdapter對數(shù)據(jù)庫的簡單結合,可以方面的把數(shù)據(jù)庫的內(nèi)容以列表的形式展示出來。ArrayAdapter:/自定義字符串數(shù)組:S
15、tring books=new String“”,“”,“”,11、Paint、Canvas類的使用,能夠自己定義畫筆顏色,定義畫布顏色,在畫布上繪制文字和直線12、表格布局中,兩個重要的標簽是Tablelayout和(<TableRow>)。Activity 生命周期:onCreate(Bundle):首先創(chuàng)建時調(diào)用該方法,執(zhí)行一次性的初始化工作。其后調(diào)用onStart()或onRestart()方法。 onStart():當Activity對用戶即將可見時調(diào)用。onResume():用戶可以開始與活動進行交互時會調(diào)用該方法。onPause():活動將進入后臺時會運行該方法。on
16、Stop():在一段時間內(nèi)不需要某個活動時,調(diào)用該方法。onRestart():將已處于停止狀態(tài)的活動重新顯示給用戶。onDestroy():銷毀活動前調(diào)用該方法。如果內(nèi)存不足,系統(tǒng)會終止進程,可能不需要調(diào)用該方法。onSaveInstanceState(Bundle):調(diào)用該方法讓活動可以保存每個實例的狀態(tài)。onRestoreInstanceState(Bundle):使用onSaveInstanceState()方法保存的狀態(tài)來重新初始化某個活動時調(diào)用該方法。自定義視圖的三種方法:(1)在主Activity中直接重寫View類(2)單獨定義View類,在主Activity中引用:在shdo
17、ku中需要調(diào)用Game的界面使使用的就是單獨定義,在Game活動用引用。(3)單獨定義View類,在布局文件中引用布局方式:線性布局:LinearLayout相對布局:RelativeLayout絕對布局:AbsoluteLayout幀布局:FrameLayout列表布局:ListView表格布局:TableLayout簡答題1. 簡述Android 平臺的特征有哪些。答:開放性、掙脫運行商的束縛、豐富的硬件選擇、無縫結合的Google應用2.簡述Android 平臺開發(fā)環(huán)境搭建的步驟。答:安裝Java JDK,安裝Eclipse,安裝Android SDK,搭建Eclipse集成開發(fā)環(huán)境(I
18、DE)、配置ADT(Android Development Tools)、創(chuàng)建AVD(Android Virtual Device)3.簡述Android系統(tǒng)架構從高到低的幾個層次。答:四個層次,分別是:應用程序?qū)樱ˋpplications)、應用程序框架層(Application Framework)、各種庫(Libraries)和運行環(huán)境(Runtime)、Linux內(nèi)核(Linux kernel)4.應用程序的基本組件有哪些?答:Activity、Service、Content Provider、BroadCast Receiver5.Android根據(jù)應用程序的組件以及組件當前運行狀態(tài)
19、將所有的進程按重要性程度從高到低劃分為幾個?答:可以劃分為5個:前臺進程、可見進程、服務進程、后臺進程、空進程6.隨著Activity的創(chuàng)建和銷毀,可能會經(jīng)歷哪四種狀態(tài)?答:活動狀態(tài):當前的Activity,位于Activity棧頂,用戶可見,并且可以獲得焦點 暫停狀態(tài):失去焦點的Activity,依然可見,即使在內(nèi)存低的情況下,也不會被系統(tǒng)殺死停止狀態(tài):該Activity被其他Activity所覆蓋,不可見,但是仍然保存所有的狀態(tài)和信息。當內(nèi)存低的情況下,它將要被系統(tǒng)殺死銷毀狀態(tài):該Activity結束,或Activity所在的Dalvik進程結束7.使用資源包括哪幾種方法?答:在代碼里使用
20、資源類;在代碼里調(diào)用資源類并實例化;從其他資源類里引用8.AndroidManifest.xml主要包含哪些功能?答:說明application的java數(shù)據(jù)包,數(shù)據(jù)包名是application的唯一標識描述application的component說明application的component運行在那個process下聲明application的權限,用以訪問受保護的API,以及與其他application進行交互聲明application的其他必備權限,用以與component進行交互列舉application運行時所需要的配置信息,這些聲明信息只有在程序開發(fā)和測試時存在,在發(fā)布前被刪除聲
21、明application所需要的Android API的最低級版本列舉application所需要鏈接的庫9.應用程序的界面布局主要有哪些?答:線性布局(LinearLayout)、表格布局(TableLayout)、相對布局(RelativeLayout)、幀布局(FrameLayout)10.Android應用程序的菜單有哪幾種?答:Android應用程序的菜單有3種:選擇菜單(Option Menu)、上下文菜單(Context Menu)、子菜單(Sub Menu)11.在界面上創(chuàng)建一個Spinner(含數(shù)據(jù)選項)的步驟。答:1、在布局文件中添加<spinner>標記,并為
22、其指定android:entries屬性2、編寫用于指定列表項的數(shù)組資源文件,并將其保存在res/values目錄中,在該文件中添加一個字符串組12.現(xiàn)行布局中屬性orientation的作用是什么?答:用于設置布局管理器內(nèi)組件的排列方式,其可選的值為horizontal和vertical,默認值為vertical13.Android中實現(xiàn)事件處理的步驟?答:(1)將事件監(jiān)聽器注冊到事件源(2)觸發(fā)事件源上的事件(3)生成時間對象(4)觸發(fā)事件監(jiān)聽器,事件被作為參數(shù)傳入事件處理器(5)調(diào)用事件處理器做出響應14.簡述Android平臺提供了那些數(shù)據(jù)存儲方法。答:Preferences、File
23、、SQLite、ContentProvider,網(wǎng)絡15.簡述Android模擬器中應用程序使用SD卡的步驟。答:(1)調(diào)用Environment的getExternalStorageState()方法判斷手機上是否插入了SD卡, 并且應用程序具有讀寫SD卡的權限(2)調(diào)用Environment的getExternalDirectory()方法來獲取外部存儲器,也就是SD卡的目錄(3)使用FileOutputStream、FileInputStream、FileReader和FileWriter來讀寫SD卡16.簡述創(chuàng)建或打開一個SQLite數(shù)據(jù)庫的方法有哪些?答:openDataBase、o
24、penOrCreateDataBase17.使用ContentProvider來實現(xiàn)數(shù)據(jù)共享,都涉及到哪些輔助類。答:onCreate()、insert()、delete()、update()、query()、getType()18.開發(fā)ContentProvider的步驟答:(1)開發(fā)一個ContentProvider子類,并實現(xiàn)增、刪、改、查等方法(2)在AndroidManifest.xml里面注冊該ContentProvider19.startService()和bindService()啟動服務的區(qū)別:服務不能自己運行,需要通過調(diào)用startService()或bindService
25、()方法啟動服務。這兩個方法都可以啟動Service,但是它們的使用場合有所不同。1.使用startService()方法啟用服務,調(diào)用者與服務之間沒有關連,即使調(diào)用者退出了,服務仍然運行。使用bindService()方法啟用服務,調(diào)用者與服務綁定在了一起,調(diào)用者一旦退出,服務也就終止。2.采用startService()方法啟動服務,在服務未被創(chuàng)建時,系統(tǒng)會先調(diào)用服務的onCreate()方法,接著調(diào)用onStart()方法。如果調(diào)用startService()方法前服務已經(jīng)被創(chuàng)建,多次調(diào)用startService()方法并不會導致多次創(chuàng)建服務,但會導致多次調(diào)用onStart()方法。采用
26、startService()方法啟動的服務,只能調(diào)用Context.stopService()方法結束服務,服務結束時會調(diào)用onDestroy()方法。3.bindService()方法啟動服務,在服務未被創(chuàng)建時,系統(tǒng)會先調(diào)用服務的onCreate()方法,接著調(diào)用onBind()方法。這個時候調(diào)用者和服務綁定在一起,調(diào)用者退出了,系統(tǒng)就會先調(diào)用服務的onUnbind()方法,接著調(diào)用onDestroy()方法。如果調(diào)用bindService()方法前服務已經(jīng)被綁定,多次調(diào)用bindService()方法并不會導致多次創(chuàng)建服務及綁定(也就是說onCreate()和onBind()方法并不會被多
27、次調(diào)用)。如果調(diào)用者希望與正在綁定的服務解除綁定,可以調(diào)用unbindService()方法,調(diào)用該方法也會導致系統(tǒng)調(diào)用服務的onUnbind()->onDestroy()方法。20. 請解釋下在單線程模型中Message、Handler、MessageQueue、Looper之間的關系。Handler簡介:一個Handler允許你發(fā)送和處理Message和Runable對象,這些對象和一個線程的MessageQueue相關聯(lián)。每一個線程實例和一個單獨的線程以及該線程的MessageQueue相關聯(lián)。當你創(chuàng)建一個新的Handler時,它就和創(chuàng)建它的線程綁定在一起了。這里,線程我們也可以理
28、解為線程的MessageQueue。從這一點上來看,Handler把Message和Runable對象傳遞給MessageQueue,而且在這些對象離開MessageQueue時,Handler負責執(zhí)行他們。Handler有兩個主要的用途:(1)確定在將來的某個時間點執(zhí)行一個或者一些Message和Runnable對象。(2)在其他線程(不是Handler綁定線程)中排入一些要執(zhí)行的動作21. handler機制的原理andriod提供了Handler 和 Looper 來滿足線程間的通信。Handler先進先出原則。Looper類用來管理特定線程內(nèi)對象之間的消息交換(MessageExcha
29、nge)。1)Looper: 一個線程可以產(chǎn)生一個Looper對象,由它來管理此線程里的MessageQueue(消息隊列)。2)Handler: 你可以構造Handler對象來與Looper溝通,以便push新消息到MessageQueue里;或者接收Looper從Message Queue取出)所送來的消息。3) Message Queue(消息隊列):用來存放線程放入的消息。4)線程:UIthread 通常就是main thread,而Android啟動程序時會替它建立一個MessageQueue。一、 選擇題1 android虛擬設備的縮寫是(AVD)2 Android SDK目前支持
30、的操作系統(tǒng)(DOS)3 Android開發(fā)工具插件(ADT)沒有提供的開發(fā)功能(自動更新)4 Android SDK提供一些開發(fā)工具可以把應用軟件打包成Android格式文件(APK)5 Android當中基本的所有的UI都是由(view)或者其子類實現(xiàn)的6以下不是Android中調(diào)試項目的正確步驟(測試用例)7下列不是Activity的生命周期方法之一的是(OnResume)8 以下可以做EditText編輯框的提示信息是(adroid:hint)9以下不是Activity啟動的方法是(gotoActivity)10 以下不是手機操作系統(tǒng)的是(windows vista)二、 填空題1 An
31、droid平臺由操作系統(tǒng),中間件,用戶界面和應用軟件組成的。2 Android平臺提供了2D,3D的圖形支持,數(shù)據(jù)庫支持SQLite,并且集成了瀏覽器3目前已知的可以用來搭建Android開發(fā)環(huán)境的系統(tǒng)有windows,Linux,Mac等 4開發(fā)中推薦使用的IDE開發(fā)組合為IDE,eclipse,ADI來開發(fā)5 Android SDK主要以java語言為基礎6創(chuàng)建工程時需要填寫的信息名稱有工程名,包的名字,Activity的名字還有應用的名字7 Android.jar是一個標準的壓縮包,其內(nèi)容包含的是編譯后的class,包含了全部的API三、 簡答題1 Android SDK中API的包結構
32、的劃分?至少五個android.util,android.os,android.content,android.view,android.graphics,android.text 2 Android軟件框架結構自上而下可分為哪些層?應用程序(Application)、應用程序框架(Application Framework)、各種庫(Libraries)和Android運行環(huán)境(RunTime)、操作系統(tǒng)層(OS)3 Android應用程序的4大組件是什么?Activity、Broadcast Intent Receiver、Service、Content Provider4 Android
33、應用工程文件結構有哪些?源文件(包含Activity),R.java文件,Android Library,assets目錄res目錄,drawble目錄,layout目錄,values目錄,AndroidManifest.xml5 Android開發(fā)應用程序最有可能使用到的應用框架部分是哪些?一組View(UI)組件,Content Providers,Resource Manger,Notification Manger,Activiy Manger6 Android底層庫包含哪些?系統(tǒng)C庫,媒體庫,Surface Manager,LibWebCore,SGL四、 編程1實現(xiàn)點擊一個按鈕,結
34、束當前Activity并將需要返回的數(shù)據(jù)放置并關閉當前窗體請編寫核心代碼Bundle bundle = new Bundle ( );Bundle.putString(“store”,”數(shù)據(jù)來自Activity1”) ;Intent mIntent = new Intent( );mIntent.putExtras(bundle);setResult(RESULT_OK, mIntent);finish( );2手動綁定列表控件的核心代碼list<Map<String,Object>>data;listView listview = null;data = new Ar
35、rayList< Map<String,Object>>( );Map<String, Object>item;item = new HashMap<String,Object>( );item.put(“姓名” , “張三小朋友”);item.put(“性別” , “男”);data.add(item);item = new HashMap<String,Object>( );item.put(“姓名” , “王五同學”);item.put(“性別” , “男”);data.add(item);listView = new List
36、View(this);SimpleAdapter adapter = new SimpleAdapter(this,data,R.layout.listitem, new String “姓名”,”性別”, new int R.id.mview1, R.id.mview2 ) ;listView.setAdapter(adapter);setContentView(listView);實驗例題:àSharePreferencepackage edu.lesson.sharedpreferences;import android.app.Activity;import android.
37、content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;public class MainActivity extends Activity implements View.OnClickListener private static final String FILENAME = "huanghuai"private EditText username = n
38、ull,userage = null;private Button submit = null;private Button show = null;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);username = (EditText) findViewById(R.id.username);userage = (EditText) findViewById(R.id.use
39、rage);submit=(Button)findViewById(R.id.submit);show=(Button)findViewById(R.id.show);submit.setOnClickListener(this);show.setOnClickListener(this);Overridepublic void onClick(View v) SharedPreferences share = super.getSharedPreferences(FILENAME,Activity.MODE_PRIVATE);switch (v.getId() case R.id.submi
40、t:SharedPreferences.Editor editor = share.edit();String name = username.getText().toString().trim();String age = userage.getText().toString().trim();editor.putString("name", name);editor.putInt("age", Integer.parseInt(age);mit();break;case R.id.show:username.setText(share.getStri
41、ng("name", "沒有 姓名信息");userage.setText(String.valueOf(share.getInt("age", 0);break;default:break;àOptionMenupackage edu.test.optionmenu;import android.app.Activity;import android.content.res.Resources;import android.graphics.drawable.Drawable;import android.os.Bundl
42、e;import android.view.Menu;import android.view.MenuItem;import android.widget.ImageView;public class MainActivity extends Activity private ImageView imageView = null;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);i
43、mageView = (ImageView) findViewById(R.id.img);Overridepublic boolean onCreateOptionsMenu(Menu menu) getMenuInflater().inflate(R.menu.main, menu);return true;Overridepublic boolean onOptionsItemSelected(MenuItem item) int itemId = item.getItemId();if (itemId = R.id.changebg) Resources resources = get
44、BaseContext().getResources();Drawable btnDrawable = resources.getDrawable(R.drawable.bg);imageView.setImageDrawable(btnDrawable);return super.onOptionsItemSelected(item);àListViewpackage edu.lesson.listview;import java.util.ArrayList;import java.util.List;import android.app.Activity;import andr
45、oid.os.Bundle;import android.view.Menu;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.ListView;public class MainActivity extends Activity private ListView listView = null;Overri
46、deprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);listView = new ListView(this);listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,getData();listView.setOnItemClickListener(new ItemClickEvent();setContentView(l
47、istView);Overridepublic boolean onCreateOptionsMenu(Menu menu) getMenuInflater().inflate(R.menu.main, menu);return true;private List<String> getData() List<String> data = new ArrayList<String>();data.add("Test data1");data.add("Test data2");data.add("Test d
48、ata3");data.add("Test data4");return data;protected class ItemClickEvent implements OnItemClickListenerOverridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) System.out.println(arg2);菜單的創(chuàng)建Mainactivity.javapackage com.example.menutest;import android.os.Bundle;import android.app.Activi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版內(nèi)墻涂料產(chǎn)品生命周期評價與環(huán)保風險評估合同4篇
- 二零二五年度民商法擔保合同環(huán)保責任條款3篇
- 2025年鉆井工程地質(zhì)災害預防合同3篇
- 二零二五年度太陽能熱水器熱水系統(tǒng)節(jié)能改造技術咨詢合同
- 二零二五年度炊事員勞動合同(含競業(yè)禁止)3篇
- 二零二五年度互聯(lián)網(wǎng)醫(yī)院信息化建設合同4篇
- 2025版特色農(nóng)家樂項目投資租賃合同范本4篇
- 二零二五年度房地產(chǎn)經(jīng)紀服務合同:房地產(chǎn)公司與經(jīng)紀公司合作3篇
- 二零二五版美容美發(fā)行業(yè)安全責任與保險合同4篇
- 二零二五年度新能源技術博士引進與項目合作合同4篇
- 不同茶葉的沖泡方法
- 光伏發(fā)電并網(wǎng)申辦具體流程
- 建筑勞務專業(yè)分包合同范本(2025年)
- 企業(yè)融資報告特斯拉成功案例分享
- 五年(2020-2024)高考地理真題分類匯編(全國版)專題12區(qū)域發(fā)展解析版
- 《阻燃材料與技術》課件 第8講 阻燃木質(zhì)材料
- 低空經(jīng)濟的社會接受度與倫理問題分析
- GB/T 4732.1-2024壓力容器分析設計第1部分:通用要求
- 河北省保定市競秀區(qū)2023-2024學年七年級下學期期末生物學試題(解析版)
- 2024年江蘇省勞動合同條例
- 六編元代文學
評論
0/150
提交評論