[解決済み】androidのテキスト変更リスナーについて
2022-03-26 23:45:24
質問
私は、2つのフィールドがある状況を持っています。
field1
と
field2
. 私が欲しいのは
を空にすることです。
field2
いつ
field1
が変更され、その逆も同様です。そのため、最終的には
の1つのフィールドにコンテンツがあります。
field1 = (EditText)findViewById(R.id.field1);
field2 = (EditText)findViewById(R.id.field2);
field1.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
field2.setText("");
}
});
field2.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
field1.setText("");
}
});
を付けると正常に動作します。
addTextChangedListener
に
field1
のみですが
両方のフィールドに対して行うと、アプリがクラッシュしてしまいます。明らかに、両者が変更しようとするためです。
というように、互いに無制限に影響し合う。一度
field1
が変更されると、それがクリアされ
field2
今この瞬間
field2
をクリアするように変更されます。
field1
といった具合に...。
どなたか解決策をご提案いただけませんか?
どのように解決するのですか?
フィールドのテキストが空でないとき(つまり長さが0以外のとき)だけクリアするようなチェックを追加することができます。
field1.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
if(s.length() != 0)
field2.setText("");
}
});
field2.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
if(s.length() != 0)
field1.setText("");
}
});
のドキュメント
TextWatcher
ここで
.
また、以下を尊重してください。 命名規則 .
関連
-
[解決済み] TextViewでテキストを水平・垂直方向にセンタリングするには?
-
[解決済み] 型の不一致:ArrayListからListへの変換ができない
-
[解決済み] Apache Camelのログに簡単なテキストを記録する
-
[解決済み] Java の文字列インデックスが範囲外です。0 [閉店]
-
[解決済み] 文字列が一意な文字であるかどうかを判定する
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み】AndroidでTextViewのfontFamilyを変更する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] java.sql.SQLException: ORA-00933: SQL コマンドが正しく終了していません。
-
[解決済み] getContentPane()は具体的に何をするのですか?
-
[解決済み] この配列の中の数字を入れ替えるには、何が足りないのでしょうか?ジャバ
-
[解決済み] コレクションへの共有参照が見つかりました org.hibernate.HibernateException
-
[解決済み] javax.naming.NameNotFoundException
-
[解決済み] 1行目2列目でBEGIN_ARRAYを期待したが、BEGIN_OBJECTだった。
-
[解決済み] javaでAnnotation Inheritanceのようなものはあるのでしょうか?
-
[解決済み] JavaFX 同じパッケージ内なのに「場所が必要です。
-
[解決済み] Java: getInstanceとStaticの比較
-
[解決済み] Spring ApplicationContext - リソースリーク: 'context' が閉じられない