android的一些莫名奇妙的問題

1,本文專門用於記載一些android開發中的莫名奇妙的問題,後續會不停的添加

1)設置語言,客戶要求設置語言後焦點自動跳到“下一步按鈕”,語言列表(GridView) 下一步(Button),由於設置完語言會自動刷新gridview,而刷新又需要一定時間,所以會導致即使button.requestFocus後焦點仍然會被gridview搶走

解決辦法:

mBtnLangNext.post(new Runnable() {
	@Override
	public void run() {
		mBtnLangNext.requestFocus();
		}
	});

是不是感覺很神奇!!!

2) android資源文件 array.xml中 <item>pt</item>這樣寫對嗎?

  <array> 
    <item>us</item>
     <item>pt</item>
  </array>
比如上面,反正pt的值是怎麼讀出來都是 null,太神奇了

3)Configuration 這個類相信大家都還熟悉,如果光明正大的用這個類不容易發現問題,就是怕有些人總喜歡在server中偷偷摸摸的修改Configuration,還不敢加上日誌,弄得出現莫名奇妙的問題

configChanges相信大家都比較熟悉,在橫豎屏切換的時候是不是經常用到,這就監聽到了Configuration配置改變事件

android:configChanges="orientation"
	@Override
	public void onConfigurationChanged(Configuration newConfig) {
		super.onConfigurationChanged(newConfig);
		System.out.println("onConfigurationChanged tostring==>"+newConfig.toString());
	}


//通過打印可以看出Configuration有什麼改變
Configuration newConfig = getResources().getConfiguration();
System.out.println("getConfig tostring==>"+newConfig.toString());

//textLayoutDirection locale screenWidthDp screenHeightDp screenLayout orientation keyboard 這些都是Configuration的屬性,如果改變這些值都會使當前activity重啓
❑ orientation 屏幕在縱向和橫向間旋轉。


❑ keyboardHidden 鍵盤顯示或隱藏。


❑ fontScale 用戶變更了首選的字體大小。


❑ locale 用戶選擇了不同的語言設定。


❑ keyboard 鍵盤類型變更,例如手機從12鍵盤切換到全鍵盤


❑ touchscreen或navigation 鍵盤或導航方式變化,一般不會發生這樣的事件


如果我們不希望改變某個配置時當前apk重啓的話,只需在manifest節點裏添加“android:configChanges”特性,
如  android:configChanges="touchscreen|locale|layoutDirection"觸摸屏模式和語言配置改變時activity是不會重啓的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章