您好,登錄后才能下訂單哦!
這篇文章主要介紹了Android 2.1怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
1. 環境搭建
Ubuntu+eclipse+ADT
2. Android 啟動很慢?
沒辦法,確實是很慢,等著吧,普遍說法是啟動***次后不關閉,以后的就是部署了要快不少的,經測試,確實是要快一些的。最不能讓我接受的是居然連點擊Home鍵都是很慢的呢。
3.R.layout.main cannot be resolved
剛寫了一行就出了這么個錯誤,讓我沒有一點脾氣的來查找原因。
解決方案:
(1)刪除第三行的“import android.R” 注:我不知道是什么時候加進來的。
(2)勾選Eclipse中的“Project->Build Automatically”
原因分析:
(1)刪除“import andorid R”之后工程就是從/res文件夾下自動生成哦資源我呢間里去解析了,否則它會從Android的資源類里去找。
使用Eclipse進行Java開發,我們首先要注意到它的編譯是智能的,進入Preferences 并啟用動態構建(workbench>Build automatically)。這樣的話,當我們每次保存文件時,Eclipse將會自動編譯該文嘉以及依賴于該文件的文件。因此,當我們想運行應用程序的時候,它基本已經保存好并且是***版本了。在處理大型代碼量時,著可以節約不少時間。
4.關于布局
買來的書是基于以前版本的(Android SDK 1.0r2),對控件的布局還是android:layout_x=”61px”,現在已經要android:layout_marginLeft=”61px” 這樣寫了,不然不起作用的。好奇的是還必須是px值,不然編譯器就報錯了,編譯器還能識別字符串里的內容!果然強大。
5. 要在TextView中顯示網址需要在TextView節點中加入android:autoLink = “all”
6. 常數(res\values) 這個文件夾下定義項目中要用到的所有常數,預先定義好,是編程的一個好習慣。例如:
(1)定義顏色常量(color.xml)
<?xml version="1.0" encoding="utf-8" > <resources> <drawable name="darkgray">#808080FF</drawable> <drawable name="white">#FFFFFFFF</drawable> </resources>
(2)定義字符串常量(strings.xml)
<?xml version="1.0" encoding="utf-8" > <resources> <string name="hello">Hello World Android</drawable> <string name="app_name">Test Android </drawable> <string name="str_id">帳號</drawable> <string name="str_pwd">密碼</drawable> </resources>
定義好了怎么用呢,有兩種引用方式:
(1)標記引用:android:text=”@string/str_id”
(2)代碼引用:
Resources resources = getBaseContenxt().getResources(); Drawable HippoDrawable = resources.getDrawable(R.drawable.white); //String aa = resources.getString(R.string.app_name); //String bb = getString(R.string.app_name); TextView tv= (TextView)findViewByID(R.id.text); tv.setBackground(HippoDrawable); // 當然可以通過使用graphics.Color 這個android默認的顏色來使用,但是只有12種常見的顏色 /× Color.BLACK Color.BLUE Color.CYAN Color.DKGRAY Color.GRAY Color.GREEN Color.LIGRAY Color.MAGENTA Color.REN Color.TRANSPARENT Color.WHITE Color.YELLOW ×/
view sourceprint?1 7.獲取手機的分辨率 view sourceprint?1 這個就是Android與ios的不同,這個系統被不同的手機廠商使用,造出的機器也就大小各異了,而蘋果的系統只有他自己用,所以能做到統一。 view sourceprint?1 DisplayMetrice dm = new DisplayMetrice(); getWindowManager().getDefaultDisplay().getMetrice(dm); string strOpt="手機分辨率為:"dm.widthPixels + " x " + dm.heightPixels;
7.Style樣式的定義
老是要一個個指定文字的大小,顏色也不是辦法的啊,所以也就有類似CSS樣式來登場了。樣式表文件取名為:style.xml放在res/values/style.xml 位置
定義樣式示例:
view sourceprint?01 <?xml version="1.0" encoding="utf-8" > <resources> <style name=DavidStyleText11> <item name="android:textSize">18sp</item> <item name="and<SCRIPT type=text/javascript> <!--mce:0--> </SCRIPT><SCRIPT type=text/javascript> <!--mce:1--> </SCRIPT><SCRIPT type=text/javascript> <!--mce:2--> </SCRIPT><SCRIPT type=text/javascript> <!--mce:3--> </SCRIPT><SCRIPT type=text/javascript> <!--mce:4--> </SCRIPT>roid:textColor">#EC9237 </item> </style> <style name=DavidStyleText22> <item name="android:textSize">18sp</item> <item name="android:textColor">#EC9237</item> <item name="android:fromAlphar">0.0</item> <item name="android:toAlphar">0.0</item> </style> </resources>
view sourceprint?1 怎么用呢?下面為main.xml文件中的兩個TextView應用不同的樣式。
<?xml version="1.0" encoding="utf-8" > <TextView style = "@style/DavidStyleTest11"/> <TextView style = "@style/DavidStyleTest22"/>
8.頁面切換
(1)在同一個Activity 中利用setContentView來置換頁面(在res\layout\下定義main.xml 和mylayout.xml)
通過setContentView(R.layout.mylayout);setContentView(R.layout.main)來在兩個layout中切換。在此有個優點:即所有的程序里的變量
都存在相同的狀態,無論是類成員變量,類函數等,皆可以在一個Activiy的狀態中直接取得,并沒有參數傳遞的問題。
(2)調用另一個Activity
/× new 一個 Intent 對象,并指定要啟動的Class×/ Intent intent = new Intent(); intent.setClass(TestAndroid.this,TestAndroid2.class); startActivity(intent); TestAndroid.this.finish();
view sourceprint?1 當系統中新添加Activity時,必須在AndroidManifest.xml里定義一個新的activity:
<activity android:name=”TestAndroid2”> </activity>
否則系統將會因為找不到Activity而發生編譯錯誤。
另外,當程序中出現兩個以上的Activity時,系統要決定主程序是哪一支(entry point)
<activity android:name=”.TestAndroid” android:lable="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.catetory.LAUNCHER"/> </intent-filter> </activity>
其中有一行為<category android:name="android.intent.catetory.LAUNCHER"/> ,這就代表程序啟動時候,會先啟動這個Activity,
而不是其他的,這個是必須定義一個的,如果xml中沒有一個定義了,那么程序將不會啟動的。
(3)不同的Activity之間的數據傳遞
Intent intent = new Intent(); intent.setClass(TestAndroid.this,TestAndroid2.class); //new 一個bundle對象,并將要傳遞的數據傳入 Bundle bundle = new Bundle(); bundle.putDouble("height",height); bundle.putString("Sex",sex); //將Bundle對象assign給Intent intent.putExtras(bundle); startActivity(intent); TestAndroid.this.finish();
那么在TestAndroid2如何取得來自TestAndroid的數據呢,是這樣子的 view sourceprint?1 //取得Intent中的Bundle對象
Bundle bunde = this.getIntent().getExtras(); String sex = bunde.getString("Sex"); double height = bunde.getDouble("height");
這樣就取到數據了,除了上述簡單的傳遞類型之外,還有String[]和ArrayList<String>等封裝的方式。不知道能不能對Bundle 做C#中的擴展方法來傳遞自己的對象?需要研究一下。
(4)返回數據到前一個Activity
在***個Activity這樣開始數據初始化
view sourceprint?01 Intent intent = new Intent(); intent.setClass(TestAndroid.this,TestAndroid2.class); //new 一個bundle對象,并將要傳遞的數據傳入 Bundle bundle = new Bundle(); bundle.putDouble("height",height); bundle.putString("Sex",sex); //將Bundle對象assign給Intent intent.putExtras(bundle); //調用Activity TestAndroid2 startActivityForResult(intent,0);
在第二個Activity中取到數據后(按上一種方法取),使用完畢,這樣返回 view sourceprint?1 //返回result 回上一個activity
TestAndroid2.this.setResult(RESULT_OK, intent); //結束這個activity TestAndroid2.this.finish();
回到***個Activity是這樣來取得返回的數據
view sourceprint?01 //覆蓋 onActivityResult() Protcted void onActivityResult(int requestCode,int resultCode,Intent data) { switch(resultCode) { case: RESULT_OK: Bundle bunde = data.getExtras(); String sex=bunde.getString("Sex"); double height = bunde.getDouble("height"); ... }
如果要在次頁面加上一個“回上頁”的按鈕,而非通過模擬器的回復鍵,且回上頁后又能保留之前輸入的相關信息,那么就必須使用startActivityForResult()來喚起一個Activity。利用這個方法,前一哦Activity1便會有一個等待次Activity2的返回,而返回的數據就可以達到我們想要的結果。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Android 2.1怎么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。