EditText はキャリッジ リターンをリッスンします
EditText を使用する場合、一部の操作を実行するために入力キャリッジ リターンを監視する必要がある場合があります。または、改行を「検索」、「送信」、「完了」などに変更する必要があります。
EditText は、ソフト キーボードの Enter キーの外観を置き換える属性 imeOptions を提供します。たとえば、actionGo は外観を「Go」に変更します。同時に設定する必要がありますandroid:inputType="text"
。
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionGo"
android:inputType="text" />
よく使用されるいくつかの属性と置換されたテキストの外観:
属性 | 説明する | 静的変数に対応 |
---|---|---|
アクション未指定 | 未指定 | EditorInfo.IME_ACTION_UNSPECIFIED |
アクションなし | アクション | 編集者情報.IME_ACTION_NONE |
アクションゴー | に行く | 編集者情報.IME_ACTION_GO |
アクション検索 | 検索 | 編集者情報.IME_ACTION_SEARCH |
アクション送信 | 送信 | 編集者情報.IME_ACTION_SEND |
アクション次へ | 次の項目 | 編集者情報.IME_ACTION_NEXT |
アクション完了 | 仕上げる | 編集者情報.IME_ACTION_DONE |
android:imeOptions="actionNext"
設定方法はレイアウトファイルまたはコード内で設定可能mUserEdit.setImeOptions(EditorInfo.IME_ACTION_NEXT);
次に、Enterキーのリスニングイベントを設定します。setOnEditorActionListener
et1.setOnEditorActionListener(mOnEditorActionListener);
// ......
private TextView.OnEditorActionListener mOnEditorActionListener = new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
Log.d(TAG, "actionId: " + actionId);
Log.d(TAG, "event: " + event);
return false;
}
};
onEditorAction が true を返した場合、このイベントが消費されたことを意味します。
上記の actionId は、android.view.inputmethod.EditorInfo
の定数に対応します。
public static final int IME_ACTION_UNSPECIFIED = 0x00000000;
public static final int IME_ACTION_NONE = 0x00000001;
public static final int IME_ACTION_GO = 0x00000002;
public static final int IME_ACTION_SEARCH = 0x00000003;
public static final int IME_ACTION_SEND = 0x00000004;
public static final int IME_ACTION_NEXT = 0x00000005;
public static final int IME_ACTION_DONE = 0x00000006;
public static final int IME_ACTION_PREVIOUS = 0x00000007;
EditText カーソルの移動と選択
主にsetSelectionメソッドを紹介します。
setSelectionには次のものがあります。
- setSelection(int start, int stop) 選択範囲
- setSelection(int Index) は、カーソルを指定された位置に移動します。
例: EditText があり、変数名が mEt1 であると仮定します。
- カーソルを前に移動します。 mEt1.setSelection(0);mEt1.setSelection(mEt1.getText().length());mEt1.setSelection(mEt1.getSelectionEnd() + 1);mEt1.setSelection(mEt1.getSelectionEnd() - 1); なお、受信インデックスがテキストの範囲を超えた場合はレポートが報告されるため、
java.lang.IndexOutOfBoundsException
実際のプロジェクトでは受信位置が既存のコンテンツの長さの範囲内であるかどうかを判断する必要があります。編集テキスト。 - カーソルを最後まで移動します
- カーソルを 1 つ右に移動します
- カーソルを 1 つ左に移動します
- 現在入力されているすべての textmEt1.setSelection(0, mEt1.getText().length()) を選択します。
入力内容を監視する
コード内の入力長を動的に制限する
TextWatcher の使用
mQueryEt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
// 如果EditText中的数据不为空,且长度大于指定的最大长度
if (!TextUtils.isEmpty(s) && s.length() > 15) {
// 删除指定长度之后的数据
s.delete(15, s.length() - 1);
}
}
});
最後にもう一度シェアします
[Tencent 技術チーム制作] Android をゼロから始めてマスターする、Android Studio インストール チュートリアル + Android 基本チュートリアルのフルセット
Androidプログラミング入門チュートリアル
入門から慣れるまでの Java 言語の基礎
Kotlin 言語の基礎から入門まで
初心者から使い慣れたものまでの Android テクノロジースタック
Android Jetpack についての総合的な学習
初心者にとって、Android Studio のインストールは難しいかもしれません。次のビデオを見て、インストール方法と実行方法を段階的に学習できます。
Android Studioのインストールチュートリアル
Java の学習段階では、この段階ではビデオ学習に重点を置き、書籍を確認して穴埋めすることで補うことをお勧めします。書籍を中心に学習する場合は、書籍の説明に基づいてコードを入力し、指導ビデオで補足して抜け漏れを確認し、穴埋めすることができます。問題が発生した場合は、Baidu にアクセスすると、初級レベルの問題に遭遇した場合でも、より適切な回答が得られることが多いです。
4 つの主要コンポーネントの使用方法、Service の作成方法、レイアウト方法、簡単なカスタム View、アニメーション、ネットワーク通信、その他の一般的な技術などの基本的な知識を習得する必要があります。
ゼロベースのチュートリアルの完全なセットが用意されています。必要な場合は、以下の QR コードを追加して無料で入手できます。
基本的な Android チュートリアルの完全なセット