私のEditText上のユーザーがクリックした後に何かをする方法
-
22-09-2019 - |
質問
私はEditText
ことを示して時間を持っています。私は私のEditText
にTimePickerDialog
を設定するように、ユーザーの後、私はView.OnClickListener
を表示したいEditText
をクリックします。
しかしOnClickListener
が変なふうに動作している - 私はEditText
に触れた後、(私はしたくない)ソフトウェアキーボードが表示されます。私はもう一度タッチすると、OnClickListener.onClick()
が最終的に呼び出され、ダイアログが表示されます。
私は何をすべき私はダイアログがすぐに表示させたい場合は?
解決
は他のほとんどのコントロールとは異なり、EditText
sはフォーカス可能です。第2のクリックイベントが実際OnClickListener
を発射しながら、最初のクリックイベントは、コントロールを焦点を当てています。あなたはandroid:focusableInTouchMode
ビューの属性を持つ無効にタッチモードフォーカス、OnClickListener
が期待通りに発射する必要がある場合。
<EditText
android:text="@+id/EditText01"
android:id="@+id/EditText01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusableInTouchMode="false" />
他のヒント
別の解決策は、ontouchlistener
を使用することです。
edittext.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(MotionEvent.ACTION_UP == event.getAction()) {
mQuaternion_1.setText("" + mQ1);
}
return true; // return is important...
}
});
それが返された場合は、 true
イベントが処理され、キーボード文句を言わないのポップアップされます。それでもポップアップにキーボードをしたいし、登録したい場合は、それがfalse
を返さなければならないと思いクリックします。
これが鳴ります。あなたは彼らが時間ピッカーを経由して時間を選択できるようにしたいです。なぜないTimePickerDialogをポップアップするだけでボタン?あなたはTextViewの中で選ばれた時間を表示することができます。
それとも、ただA TimePickerでのEditTextビューを置き換えることができますのビュー(ないダイアログ、普通のビュー)。
私はこのようなカスタマイズされたボタンを使用してこれを解決します:
<Button
android:id="@+id/btTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="test"
android:textSize="20dp"
android:background="@android:drawable/edit_text" />
editText.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) {
//yourFunction();
}
@Override
public void afterTextChanged(Editable s) {
}
});
私が正しく理解していればあなただけのようなものが必要
<EditText android:text="@+id/EditText01" android:id="@+id/EditText01"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:clickable="true" android:inputType="none" />
編集可能とクリックできません。 OnClickListener
を設定すれば完了です。
理論的には、実際にあなたも追加する必要があります。
android:editable="false"
非推奨ですが、トリックをしている