我遇到了相当大的难题,无法找到解决方案。显然 JellyBean 改变了 IME 操作的处理方式。我发现许多网站提供了一个确实有效但仅适用于单行的解决方案EditTexts
。示例:Stackoverflow:onEditorAction
EditText
在 JellyBean 之前,我的小部件运行良好。它会正确地自动换行,直到用户点击“完成”(返回)键。然后它会用OnEditorActionListener
和 相应地处理事件。我尝试了多种使用以下 XML 属性更改设置的变体,但均无济于事:
- 单衬里
- 水平滚动
- 输入类型
- imeOptions
- 线条
我只能在没有触发 onEditorAction 事件或没有触发 onEditorAction 事件的情况下获得自动换行。如何为 JellyBean 同时获取自动换行和处理软键盘输入键?
更新 1:包括请求的代码。请注意,这是它现在的状态,适用于除 JellyBean 之外的所有平台。正如我之前所说,尝试了多种不同的 XML 设置均无济于事。
更新 2:设法获得了运行 JellyBean 4.1.1 的华硕变压器。工作正常。所以也许这是一个特定于设备的错误?我的另一个 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>