gpt4 book ai didi

android - 如何让 EditText、IME Action、textMultiLine 为 JellyBean 工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:44:24 24 4
gpt4 key购买 nike

我遇到了很多难题,但未能找到解决方案。显然,JellyBean 改变了 IME 操作的处理方式。我发现许多网站提供的解决方案确实有效,但仅适用于单行 EditTexts。示例:Stackoverflow: onEditorAction

我的 EditText 小部件在 JellyBean 之前工作得很好。它会正确换行,直到用户点击“完成”(返回)键。然后它会使用 OnEditorActionListener 捕获事件并进行相应处理。我已尝试使用以下 XML 属性更改设置的多种变体均无济于事:

  • 单行
  • 水平滚动
  • 输入类型
  • ime选项

我只能在没有触发 onEditorAction 事件或没有触发 onEditorAction 事件的情况下进行自动换行。如何为 JellyBean 实现自动换行并同时处理软键盘输入键?

更新 1:包括请求的代码。请注意,这是现在的情况,适用于除 JellyBean 之外的所有平台。正如我之前所说,尝试了多种不同的 XML 设置都无济于事。

更新 2:设法获得运行 JellyBean 4.1.1 的 Asus Transformer。工作正常。所以也许这是一个特定于设备的错误?我的另一个 JellyBean 设备是运行 4.1.2 的 Nexus 7。谁能用其他设备验证这一点?

代码:

private class OnMyEditorActionListener implements OnEditorActionListener {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_GO) {
doSomething();
return true;
}
return false;
}
}
<EditText
android:id="@+id/editbox_box_et"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@null"
android:gravity="top|center_horizontal"
android:imeOptions="actionGo"
android:inputType="textMultiLine|textNoSuggestions"
android:padding="@dimen/spacing_half"
android:textSize="24sp" >
</EditText>

最佳答案

自己为提交/执行按钮提供一个 ID

Activity 中:

private class OnMyEditorActionListener implements OnEditorActionListener {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == R.id.your_new_ID || actionId == EditorInfo.IME_Null) {
doSomething();
return true;
}
return false;
}
}

在 xml 中:

<EditText
android:id="@+id/editbox_box_et"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@null"
android:gravity="top|center_horizontal"
android:inputType="textMultiLine|textNoSuggestions"
android:padding="@dimen/spacing_half"
android:textSize="24sp"
android:imeActionId="@+id/your_new_ID"
android:imeActionLabel="Go"> </EditText>

关于android - 如何让 EditText、IME Action、textMultiLine 为 JellyBean 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13239225/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com