android-input-method 相关问题

InputMethod接口表示一种输入方法,可以在处理各种输入事件时生成关键事件和文本,如电子邮件地址,其他语言字符等,并将文本发送回请求文本输入的应用程序

建议文本未在 Android 键盘中显示

当我使用 inputType 作为“textUri”时,建议文本输入不显示。 当我使用 inputType 作为“textUri”时,建议文本输入不显示。 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Enter URI" **android:inputType="textUri"** android:imeOptions="actionDone"/> </RelativeLayout> 我尝试使用 setPrivateImeOptions 方法,但仍然提示文本未显示。 即使我使用了 android:inputType="textUri|textCapSentences|textAutoCorrect" 但没有用。 public class CompleteEditTextActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_edit_text); EditText editText = findViewById(R.id.editText); editText.setPrivateImeOptions("com.android.internal.inputmethod:LatinIME"); } 已确定路径中的TYPE_TEXT_VARIATION_URI实现了shouldSuppressSuggestions的布尔值 packages/inputmethods/LatinIME/java/src/com/android/inputmethod/latin/InputAttributes.java // TODO: Have a helper method in InputTypeUtils // Make sure that passwords are not displayed in {@link SuggestionStripView}. final boolean shouldSuppressSuggestions = mIsPasswordField || InputTypeUtils.isEmailVariation(variation) **|| InputType.TYPE_TEXT_VARIATION_URI == variation** || InputType.TYPE_TEXT_VARIATION_FILTER == variation || flagNoSuggestions || flagAutoComplete; mShouldShowSuggestions = !shouldSuppressSuggestions; 因此,当我们在 XML 中声明“textURI”时,键盘顶部的建议单词不会显示。

回答 1 投票 0

调整Resize是否已弃用或仅WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE?

在尝试使用软输入模式后,唯一能满足我的要求的是在清单和活动中设置活动的 android:windowSoftInputMode="adjustResize" ?。

回答 1 投票 0

操作输入法设置后返回活动

我正在制作一个自定义键盘应用程序。 有一个按钮可引导用户从应用程序进入输入法设置。 这是意图: startActivityForResult(新意图(设置。

回答 3 投票 0

Android中如何确定当前的IME?

我有一个应用程序,如果用户没有使用默认的 Android 软键盘,我想警告他们。 (即他们正在使用 Swype 或其他东西)。 如何查看是哪种输入法...

回答 3 投票 0

InputMethodService onCreateInputView 未调用

我有一个简单的InputMethodService实现: 类 MyKeyboardView : InputMethodService() { 重写 fun onCreate() { 超级.onCreate() Timber.d(“onCreate”) ...

回答 1 投票 0

XmlPullParserException:元数据不以输入法标签开头(Android 自定义键盘)

在处理另一个项目时,我注意到我之前制作的测试键盘在 logcat 中弹出了一个异常(基于此答案的“继续”部分)。它安装在我的手机上,但它...

回答 1 投票 0

从状态列表drawable中获取特定的drawable

我有一个状态列表可绘制对象,我想从状态列表可绘制对象中获取特定的可绘制对象: 我有一个状态列表可绘制对象,我想从状态列表可绘制对象中获取特定的可绘制对象: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:kplus="http://schemas.android.com/apk/res-auto"> <item kplus:key_type_space_alt="true" android:state_pressed="true" android:drawable="@drawable/space_1_pressed" /> <item kplus:key_type_space_alt="true" android:drawable="@drawable/space_1_normal" /> <!-- TopNav keys. --> <item kplus:key_type_topnav="true" android:state_pressed="true" android:drawable="@drawable/tab_down" /> <item kplus:key_type_topnav="true" android:state_selected="true" android:drawable="@drawable/tab_down" /> <item kplus:key_type_topnav="true" android:drawable="@drawable/tab_normal" /> <!-- TopRow keys. --> <item kplus:key_type_toprow="true" android:state_pressed="true" android:drawable="@drawable/numeric_presseed" /> <item kplus:key_type_toprow="true" android:drawable="@drawable/numeric_normal" /> </selector> 我为每个键选择正确的可绘制状态,如下所示: if (keyIsNumbers) { if (KPlusInputMethodService.sNumbersState == 2) { drawableState = mDrawableStatesProvider.KEY_STATE_TOPNAV_CHECKED; } } 现在状态定义如下: KEY_STATE_TOPNAV_NORMAL = new int[] {keyTypeTopNavAttrId}; KEY_STATE_TOPNAV_PRESSED = new int[] {keyTypeTopNavAttrId, android.R.attr.state_pressed}; KEY_STATE_TOPNAV_CHECKED = new int[] {keyTypeTopNavAttrId, android.R.attr.state_selected}; 现在我的问题是如何为每个状态提取正确的可绘制对象?我需要获取可绘制对象的 9patch 填充,因为如果状态在 9patch 上有不同的填充,它将仅获得顶部可绘制对象的填充,并且我想为每个键手动设置填充(drawable.getPadding(rect)) . 过时的答案。 请检查 VinceStyling 的答案,以获得使用 SDK 29+ 的更好解决方案 没有没有公共API可以从状态获取可绘制对象。 StateListDrawable中有一些方法,但它们是@hide,带有注释“待定的API委员会”。 您可以通过反射来调用它们...但是您需要自行承担风险!!!。 (在未来的版本中可能会改变) 这些方法是: 获取StateDrawableIndex 获取状态可绘制 以下是如何进行(省略例外): int[] currentState = view.getDrawableState(); StateListDrawable stateListDrawable = (StateListDrawable)view.getBackground(); Method getStateDrawableIndex = StateListDrawable.class.getMethod("getStateDrawableIndex", int[].class); Method getStateDrawable = StateListDrawable.class.getMethod("getStateDrawable", int.class); int index = (int) getStateDrawableIndex.invoke(stateListDrawable,currentState); Drawable drawable = (Drawable) getStateDrawable.invoke(stateListDrawable,index); 现在这是无需反射即可获取特定可绘制对象的方法: StateListDrawable pressedDrawable = (StateListDrawable) this.mPressed; final int state = android.R.attr.state_pressed; final int index = pressedDrawable.findStateDrawableIndex(new int[]{state}); if (index >= 0) { Drawable drawable = pressedDrawable.getStateDrawable(index); if (drawable instanceof GradientDrawable) { ((GradientDrawable) drawable).setCornerRadius(mRoundConerRadius); } }

回答 2 投票 0

如何在android中使用PopupWindow从InputMethodService创建keypreview?

我正在尝试使用按钮为 Android 系统创建自定义键盘,并且工作正常。但现在我想添加按键预览。我是 Android 新手,请帮助我是否可以显示 popupwi...

回答 1 投票 0

“尽管 Android 在 Activity 开始时将焦点放在布局中的第一个文本字段”这一说法是否仍然有效?

我在处理输入法可见性部分找到了主题声明 我想尝试在活动开始时打开我的键盘。但是,我唯一的 EditText 并不专注于活动开始。我的躺...

回答 0 投票 0

How to change key label of the custom android keyboard in java

我想在运行时通过 java 更改自定义键盘上的键标签。我无法在任何地方找到任何解决方案。 java文件 公共类 MyKeyboardService 扩展了 InputMethodService impl ...

回答 1 投票 0

键盘在启用多客户端 IME 后更改设备方向后被截断

在多客户端输入法中将设备方向更改为横向模式,并且键盘宽度未占用整个显示宽度。 下面我附上了窗口获取

回答 1 投票 0

使用customview获取输入文本,而无需使用edittext android

我已经创建了customview。每当用户双击视图时,它都应显示键盘,并且用户可以绘制新的文本。 Holder是可扩展视图的customview。但是它正在显示键盘。 ...

回答 9 投票 15

当EditText设置为浮点数时如何显示数字键盘?

当我关注设置为InputType.TYPE_NUMBER_FLAG_DECIMAL的EditText时,我希望手机显示数字键盘。但是它显示了字母数字(普通键盘,如whatsapp的键盘),如何...

回答 1 投票 0

Android日志消息“ InputMethodManager:当前服务视图不是焦点视图”

运行我的Android应用程序时,在该应用程序生成ANR弹出警告之前,我立即在日志中看到以下警告级别消息:“ InputMethodManager:当前服务视图不是焦点...

回答 1 投票 2

如何从 Jetpack Compose TextField 关闭虚拟键盘?

我正在使用 Jetpack Compose TextField,我想在用户按下操作按钮(imeActionPerformed 参数)时关闭虚拟键盘。 val text = +state { "" } 文本域( v...

回答 7 投票 0

从用户的角度来看,禁用横向软键盘输入的全屏编辑视图?

我正在寻找这个问题的答案,但是从用户的角度来看。也就是说,如果平板电脑显示正常的应用UI,即使键盘在横向模式下可见,也会导致......

回答 2 投票 4


如何判断输入法选择器是打开还是关闭?

我的应用程序使用InputMethodManager.showInputMethodPicker()打开输入法选择器(您选择键盘的菜单)。我的应用程序实际上并没有创建选择器(它由...创建)

回答 3 投票 9

自定义系统键盘(软键盘)动态更改键盘按键文字颜色和键盘按键背景Android [关闭]

我创建了一个自定义键盘。我想通过将值传递给函数来动态自定义键盘键文本颜色和键盘键背景颜色及其宽度。如何更改密钥......

回答 1 投票 2

在android中添加自定义图像作为表情符号

如何在android InputMethodService中添加自定义图像作为表情符号。我尝试过使用ImageGetter imageGetter = new ImageGetter(){public Drawable getDrawable(String source){...

回答 1 投票 5

© www.soinside.com 2019 - 2024. All rights reserved.