私はかなりの難問に遭遇し、解決策を見つけることができません。JellyBean は、IME アクションの処理方法を変更したようです。実際に機能するソリューションを提供している多くのWebサイトを見つけましたが、単一行のみですEditTexts
。例: Stackoverflow: onEditorAction
私のEditText
ウィジェットは、JellyBean まで完全に機能していました。ユーザーが「完了」(リターン)キーを押すまで、適切にワードラップされます。次に、 でイベントをキャッチし、それOnEditorActionListener
に応じて処理します。次の XML 属性を使用して設定を変更する複数のバリエーションを試しましたが、役に立ちませんでした。
- 単線
- scrollHorizontally
- 入力方式
- imeOptions
- 行
onEditorAction イベントが起動されていない場合、または onEditorAction イベントが起動されている場合にのみ、ワード ラッピングを取得できました。JellyBean でワードラップを取得し、同時にソフトキーボードの Enter キーを処理するにはどうすればよいですか?
更新 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>