我正在使用EditText的
来接受一个OTP,其中用户一旦在字段中输入数字等,就会专注于下一个EditText
。它在所有设备上都可以正常工作。但在运行android OS P的设备上,即API 28,Request estFocus()
不起作用,并且用户无法将数字输入到连续的EditText
,因为焦点不会自动移动。
这是代码-默认情况下,所有EditText的
都禁用以防止打开系统键盘。我正在使用我自己的CustomKeybaord
来接受数字。但是它可以工作,除了Android P。
mEtCode1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
Log.d("BEFORE_", charSequence.toString());
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
hideError(charSequence.toString());
if (!charSequence.toString().isEmpty()) {
mEtCode2.requestFocus();
mEtCode1.setBackground(getResources().getDrawable(R.drawable.verify_code_edit_text_background));
mEtCode2.setBackground(getResources().getDrawable(R.drawable.verify_code_edit_text_background));
mEtCode1.setEnabled(false);
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
请帮帮我这个
提前谢谢你
以下是 requestFocus 方法的官方文档。它指出,仅当要为其提供焦点的所需视图已启用,具有大小,可见,可聚焦且可聚焦的InTouchMode时,它才有效。
我有完全相同的问题。我使用数据绑定来设置EditText的启用状态。我意识到requestFocus不起作用,因为由于一些未知的原因,数据绑定无法及时启用我的textview。
这是我的代码:
/*
setMyEditTextEnabled is my method to which my view is binded i.e.
android:enabled="@{vm.myEditTextEnabled, default=false}"
This worked for all version except Android P because it has
some timing issues with API 28 (not sure what)
*/
//binding.getVm().setMyEditTextEnabled(true);
/*
So to make it work, I am enabling my EditText directly and
it works for all versions.
*/
binding.myEditText.setEnabled(true);
binding.myEditText.requestFocus();
此外,如下文所述:编辑文本请求焦点不起作用也将可聚焦和可聚焦的InTouchMode设置为true。
简而言之,我的观点是确保您的编辑文本满足官方文档中提到的所有要求,以便requestFocus工作。
这是Android P的问题,对我有用的是下面的代码块,所以在这里分享一下:
enterOtpTextFrame.postDelayed(Runnable {
enterOtpTextFrame.requestFocus()
}, 100
)
我们需要调用requestFocus,并延迟一小段时间。在我的例子中,它是100毫秒。
我在带有Android P sdk的设备上的OTP屏幕也遇到了同样的问题。问题是我将editText的高度和宽度设置为0dp,这在android P中是焦点禁用,如Android P更改日志中的Android Developer页面所述:android-9.0-更改-28#用户界面-更改
面积为0的视图(宽度或高度为0)不再可聚焦。
我找了一整天,尝试了大部分的解决方案,但仍然没有成功。在上是否存在的bug? 我有2个字段(调用),是必填字段。当我将留空并输入到,然后输入时,我希望它聚焦回,并显示错误弹出窗口“必填字段为空!”。 但是现在,中的光标仍然不集中,并显示错误 这是我的代码,当按下回车键时,是我上面提到的edtA: 这是edtA的XML: 有人能帮忙吗?谢谢你的时间。 更新:在尝试了所有建议但没有任何改变后,我决定使
我有一个全屏活动,其中某些布局元素隐藏起来,让位于容器内的一个片段(FrameLayout)。布局如下所示: 片段布局如下所示: 如您所见,在我的片段布局中,我包含了另一个名为input_view的布局。其布局文件如下所示: 这是从以下来源获得的幻灯片面板:https://github.com/mancj/SlideUp-Android,它主要是一个编辑文本视图,在回收器视图项目的单击事件上向上滑
代码如下: 这是适配器,我在这里为列表做了自己的设计(< code>R.layout.zalistu),它在仿真器中工作,但在设备上它给我一个错误(应用程序意外停止),如果我使用< code>simple_list_item_1,那么它在仿真器和我的设备上都可以正常工作。 这里是R:layout.zalistu: 日志猫: 我设备上的Android版本是2.3.7,模拟器上的版本是4.0.4(AP
我正在尝试为中的每一行设置 突出显示。 我有一个可绘制的资源文件: 我已经在三星Galaxy S5设备上进行了测试,该设备可以正常工作。但是,当我在安装了Android 4.4.2的中兴Compel设备上进行测试时,它不起作用。 我的应用程序针对API 15及更高版本。 任何想法为什么这样: 不能在Android4.4.2设备上工作? 日志中的错误: 由以下原因引起:组织:二进制 XML 文件行
问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt
所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。