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是不会重启的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章