- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我遇到了很多难题,但未能找到解决方案。显然,JellyBean 改变了 IME 操作的处理方式。我发现许多网站提供的解决方案确实有效,但仅适用于单行 EditTexts
。示例:Stackoverflow: onEditorAction
我的 EditText
小部件在 JellyBean 之前工作得很好。它会正确换行,直到用户点击“完成”(返回)键。然后它会使用 OnEditorActionListener
捕获事件并进行相应处理。我已尝试使用以下 XML 属性更改设置的多种变体均无济于事:
我只能在没有触发 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/
我有一个显示聊天 session 的 fragment ,然后在它下面有一个 EditText 和一个 Button 现在我对包含 EditText 和 Button 的 RelativeLayout
安卓工作室 0.4.4 你好, 我希望 EditText 属性 textmultiline 默认显示 3 行。但是,我看不到这样做。因为它总是显示 1 行。有什么方法可以使用 LinearLayout
我想要一个 Multiline EditText 来允许 imeOptions="actionNext"。 这有效,但只允许单行输入 ... android:inputType="t
我陷入了一个问题,当我在 xml 中使用 inputtype 作为 textmultiline 并在 edittext 中使用imeiOptions 作为 KEYCODE_ENTER 时。然后我的 s
¿在什么情况下我必须使用其中的哪一个? 在谷歌文档中说: 文本多行可以与文本及其变体结合使用,以允许字段中包含多行文本。如果未设置此标志,文本字段将被限制为单行。 textLongMessage 作为
这是我的编辑文本。为什么不允许多行? 我还以编程方式设置了它。 edit_View.setSingleLine(false); edit_View.setImeOpt
这是我的编辑文本: 我希望它将输入行数扩展到最多 4 行(因此,maxLines="4")。但是,它仍然显示 1 行(实际上是 1 和第二行的四分之一是可见的)。 我尝试添加 android:lin
使用 Android 1.6(4) 和 2.3.3(10) 进行测试。 我制作了一个简约的测试应用程序来演示这一点,它所做的就是加载 xml: setContentView(R.layout.main
我有一个需要接受多个电子邮件地址的 EditText 输入字段。 例如在多行上。 但是通过设置 android:inputType="textMultiLine|textEmailAddress" t
我想要一个五行高的 EditText View 。出于视觉吸引力的原因,我希望它高五行(这样它就不会显得局促)。下面的代码不起作用,EditText 只出现一行高。 我已经尝试过 multilinet
我遇到了很多难题,但未能找到解决方案。显然,JellyBean 改变了 IME 操作的处理方式。我发现许多网站提供的解决方案确实有效,但仅适用于单行 EditTexts。示例:Stackoverflo
我是一名优秀的程序员,十分优秀!