总结一下今天在编程中遇到的问题和相应的解决办法

来源:互联网 发布:淘宝的优惠券是真的吗 编辑:程序博客网 时间:2024/05/16 13:41

1.当进入一个activity后,如果这个activity中有输入框EditText时,系统就会获取输入框的焦点,然后弹出系统输入法,但有的时候我们又不想让输入法弹出,因为会影响美观和一些功能,有人希望弹出输入法后将一些布局遮盖,而有人不需要遮盖,却想让输入法将布局顶上去,也就是位于输入法的上方,可以进行操作,这个时候我们就需要一些属性去设置。我们需要在AndroidManifest.xml的Activity设置属性:android:windowSoftInputMode = "adjustResize",当属性设置为这个,布局就会被输入法顶上去,而我们如果将属性改为"adjustPan",我们的输入法就会将布局给遮盖,另外还有很多的属性供我们去选择,一下列举一下我在找寻解决办法中找到的资料。如下:

各值的含义:

stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置

stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示

stateHidden:用户选择activity时,软键盘总是被隐藏

stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的

stateVisible:软键盘通常是可见的

stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态

adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示

adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间

adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分


2.我们在需要将我们的项目设置为不能够横竖屏切换时,我们就需要在AndroidManifest文件对应的Activity中去设置,具体属性如下:

"unspecified":默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向. 
"landscape":横屏显示(宽比高要长) 
"portrait":竖屏显示(高比宽要长) 
"user":用户当前首选的方向 
"behind":和该Activity下面的那个Activity的方向一致(在Activity堆栈中的) 
"sensor":有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换。 
"nosensor":忽略物理感应器,这样就不会随着用户旋转设备而更改了("unspecified"设置除外)。


3.在activity跳转中由A->B,然后B在数据库中进行操作,A中在数据库中进行查询然后显示的时候,我们可以将获取数据的初始化方法写在Acticity生命周期的onResume中,因为我们在第一次启动还是从别的activity中返回来,当Aactivity不管是onStop还是onPause,我们的acitivity都会执行onResume方法,所以我们在不能够确定我们的activity在被别的页面遮住焦点后是暂停了还是停止了,所以我们把获取数据方法写在onResume中,而不是onStart中,这样就会可以Get到适配器的实时更新,有更好的办法可以去给适配器加下拉刷新上拉加载。


2 0