大量的时间花在解决问题,它看起来很容易,但我真的累了,无法找到解决方案。 我有一个活动,活动有4个的EditText组件,其中2个具有弹出菜单(AlertDialog),它包含的列表中,下一个 - 是编辑无效,最后一个 - 是可编辑的,而应该表现出软键盘,当用户攻就可以了。
另外,我的根的LinearLayout具有的LinearLayout包含内部RelativeLayout的。 最后一个是需要AdvBanner。 最后的LinearLayout(RelativeLayout的)对齐到根布局的底部。
XML的描述它的一部分:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="bottom"
android:focusable="false"
android:focusableInTouchMode="false"
android:gravity="bottom">
<RelativeLayout
android:id="@+id/AdvLayoutReserveArea"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:background="#FFFFFF"
android:focusable="false"
android:focusableInTouchMode="false"
android:gravity="bottom" />
</LinearLayout>
当活动开始,可编辑的EditText一直注重与绿色边框和光标闪烁。 几秒钟走后,AdvBanner加载和显示。 当它发生时,可编辑的EditText失去焦点..从这一刻开始,我的生活就像一场噩梦。
让我们一步一步看。
问题1.如果在这一刻 (进阶时加载和显示)用户通过软键盘编辑一个EditText领域,焦点将丢失,边境采取了灰色 ,并且如果用户继续键入文本没有结果-符号不印刷(CURSOR中的EditText过丢失)。
我认为,任何用户都会感到厌烦 - 当你键入文字,光标是无效的,因为在后台一些进阶被加载,并把它聚焦自我。
到被装载时进阶解决这个问题,在方法(示出一个)我尝试通过requestFocus的方法来备份集中手动的EditText。
public void onAdLoaded()
{
// TODO Auto-generated method stub
// add app specific code for this event here...
// called when an ad is successfully displayed on device
CountEdit1.requestFocus();
}
是的,光标返回的EditText字段,如果软键盘处于活动状态,用户仍然可以输入文字,但现场的EditText边境留下灰色...
注:其实我不知道关于集中的EditText的绿色和灰色边框之间的差别。绿色通常是当用户敲击它,灰色,也许,当我们要手动请求焦点(使用requestFocus()方法等)
问题2(作为溶剂化问题#1的结果)。 软键盘关闭后,如果编辑的EditText字段的用户点击,它需要专注和光标出现内,但再次显示软键盘没反应! 它的攻不显示软键盘,但看起来像在编辑栏复印模式 - 当用户可以选择文本和剪切/复制到剪贴板。
我的目标很容易先看看。 我只是想保存光标和重点为可编辑的EditText字段(CountEdit1),同时显示软键盘和用户输入一些文字。 和正常的反应,当用户敲击的EditText - 因为通常情况下,只显示我的软键盘!
我读了所有的问题在这里,我结合不同的方法(clearFocus,requestFocusFromTouch等),只是没有足够的时间和空间来描述所有我试图做的解决这个问题。 存在的主要问题如上所述。
希望帮助和解决问题...在此先感谢..