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是不會重啓的