Android中應該注意的細節

原帖地址:http://wayfarer.javaeye.com/blog/444061

(1) res中的xml文件命名必須全部爲小寫字母,如果有大寫字母存在,則無法編譯通過。原因不知。


(2) 關於onCreate()方法中的語句次序

Java代碼 複製代碼
  1. <SPAN style="FONT-SIZE: small">protected void onCreate(Bundle savedInstanceState) {   
  2.     super.onCreate(savedInstanceState); // 次序爲1,原因很簡單,因爲是super語句   
  3.     setContentView(R.layout.checkbox); // 次序爲2,和j2me不同,這條語句必須放在其他widget之前,放在其前面的widget不會被加載到這個Activity中   
  4.     tv = (TextView) findViewById(R.id.textView);   
  5.     apple = (CheckBox) findViewById(R.id.apple);   
  6.     ......   
  7. }</SPAN>  
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState); // 次序爲1,原因很簡單,因爲是super語句
	setContentView(R.layout.checkbox); // 次序爲2,和j2me不同,這條語句必須放在其他widget之前,放在其前面的widget不會被加載到這個Activity中
	tv = (TextView) findViewById(R.id.textView);
	apple = (CheckBox) findViewById(R.id.apple);
	......
}

requestWindowFeature(Window.FEATURE_NO_TITLE); 使得Activity沒有titleBar,進而使顯示區域變大。如果需要這條語句,其應當置於setContentView()方法之前。


(3) XML Attributes

    1)Spinner/GridView/ListView


    2) @+id
@+id是個人添加新控件的id,“+”表示新建屬性;@id是android內置的;@android:id/empty表示Android中的自由屬性。


      3) layout_width和layout_height是必備屬性:java.lang.RuntimeException: You must supply a layout_width attribut.

    4) java.lang.IllegalStateException:ScrollView can host only one direct child.


(4)控制鍵盤的顯示和隱藏

dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_BACK));
dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK));


(5)你後臺的Activity被系統回收怎麼辦:onSaveInstanceState
當你的程序中某一個Activity A在運行時,主動或被動地運行另一個新的Activity B,這個時候A會執行onSaveInstanceState()
B完成以後又會來找A,這個時候就有兩種情況:一是A被回收,二是A沒有被回收,被回收的A就要重新調用onCreate()方法,不同於直接啓動的是這回onCreate()裏是帶上了參數savedInstanceState;而沒被收回的就直接執行onResume(),跳過onCreate()了。
savedInstanceState是一個Bundle對象,你基本上可以把他理解爲系統幫你維護的一個Map對象。在onCreate()裏你可能會用到它,如果正常啓動onCreate就不會有它,所以用的時候要判斷一下是否爲空。
就像官方的Notepad教程裏的情況,你正在編輯某一個note,突然被中斷,那麼就把這個note的id記住,再起來的時候就可以根據這個id去把那個note取出來,程序就完整一些。這也是看你的應用需不需要保存什麼,比如你的界面就是讀取一個列表,那就不需要特殊記住什麼,哦,沒準你需要記住滾動條的位置...


(6)AlertDialog

AlertDialog類是Dialog類的子類。它默認提供了3個按鈕和一個文本消息。這些按鈕可以按需要來使他們顯示或隱藏。
AlertDialog類中有一個內部類,名爲 ‘Builder’,Builder類提供了爲對話框添加多選或單選列表,以及爲這些列表添加事件處理的功能。另外,這個Builder類將 AlertDialog對話框上的3個按鈕按照他們的位置分別稱呼爲:PositiveButton, NeutralButton, NegativeButton

  • 大小: 24.2 KB
  • 大小: 30.8 KB
  • 大小: 166.6 KB
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章