アクティビティのソフトキーボードにonClickを追加しようとしています。理由は、私は、ユーザーが現在アクティブかどうかを確認したいということです。だから私がやったことは、ユーザーがアプリをクリックすると、私は非アクティブタイマーをリセットするということです。問題は、ユーザーがソフトキーボードとやり取りするときに、アクティビティでオーバーライドする関数である関数onUserInteraction()
を呼び出さないということです。だから私は、ソフトキーボードが私が活動中に持っているすべてのテキストフィールドなどのためにクリックされているかどうかを追跡する方法を見つけるために助けが必要です。 (私はすべてのEditTextフィールドにonclick listernerを挿入できることを知っていますが、私はむしろそうしません。なぜなら、多くのEditTextフィールドを使用するとすばらしいことではないからです)Android onClick onアクティビティのソフトキーボード
答えて
をこれが私の結末です。私は他の何かを望んでいたが、これは問題を解決する。助けてくれてありがとう!
public class ActivityEditText extends android.support.v7.widget.AppCompatEditText {
private TextWatcher tw;
public ActivityEditText(Context c)
{
super(c);
this.setOurTCL();
}
public ActivityEditText(Context context, AttributeSet attrs) {
super(context, attrs);
this.setOurTCL();
}
public ActivityEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
this.setOurTCL();
}
private void setOurTCL()
{
this.tw = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
InactivityManager.resetTime();
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
}
};
this.addTextChangedListener(this.tw);
}
@Override
public void removeTextChangedListener(TextWatcher watcher) {
if(!watcher.equals(this.tw))
super.removeTextChangedListener(watcher);
}
}
onUserInteraction()
の機能を使用できます。アクティビティーでこの関数をオーバーライドする必要があります。 この関数は、アクティビティとのやり取りを行うときに呼び出されます。
@Override
public void onUserInteraction() {
super.onUserInteraction();
// Your code goes here
}
あなたは
は、この情報がお役に立てば幸いドキュメントを参照し、this exampleとalso this answerを参照することができます。
私が説明したように、私はすでにそのメソッドをオーバーライドしていますが、ソフトキーボードのやり取りには反応しないようです。 – Linussjo
すべての編集テキストに対して行うのではなく、editedextを拡張してcustomedittextを作成し、textwatcherを追加するか、onclickを処理して非アクティブタイマーを確認することができます –
個々のキーを処理するには、必要に応じてonKeyDown()またはonKeyUp()を実装します。通常、イベントを1つしか受け取らないようにするには、onKeyUp()を使用する必要があります。ユーザーがボタンを押して保持すると、onKeyDown()が複数回呼び出されます。
アクティビティに実装しようとしました。しかし、ソフトキーボードと対話するときに呼び出されるのではありません – Linussjo
キーボードは別のウィンドウです。ユーザーが入力している内容を追跡する必要がない場合は、すべての編集テキストにグローバルtextWatcherを追加し、ユーザーが入力するたびに呼び出されるテキストの変更をリッスンすることを検討できます。 – Praga
はい、私はこの問題に対するこの解決策を認識しています。私はすべてのエディットテキストではなく、アクティビティで実装できるソリューションを期待していましたが、しかし、そのような解決策がない場合、私はその解決策に戻る必要があります。 – Linussjo
あなたはこのようないくつかのことを行うことができますEditText
使用して、すべてのXMLレイアウトにそのクラスを使用するクラスにUserInteractionEditText
のようないくつかのものを作成し、EditText
を拡張し、そのクラスでのonclick lisetenerを設定:だから
public class UserInteractionEditText extends EditText implements View.OnClickListener {
public UserInteractionEditText(Context context) {
super(context);
}
public UserInteractionEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public UserInteractionEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void onClick(View v) {
//TODO:: Handle user Click Events
}
}
- 1. Androidハンドラ/スレッドonアクティビティ
- 2. Androidのソフトキーボードが
- 3. android - on touchのアクティビティを開始する
- 4. Appcelerator Titanium Androidソフトキーボード
- 5. Androidソフトキーボード - リサイズアイコンのプレビュー
- 6. listView onclickアクティビティ
- 7. onClick FloatingActionButton onフラグメント
- 8. Androidの遅いソフトキーボードのオープニング
- 9. Androidのアクティビティはソフトキーボードの表示の変更で再作成されません
- 10. Androidアプリの消えるソフトキーボード
- 11. Androidソフトキーボードのカスタム「完了」ボタンテキスト?
- 12. Androidソフトキーボードの編集テキストデコレータ
- 13. Android無効ソフトキーボードのEnterキー
- 14. Androidソフトキーボード:「終了」の「完了」
- 15. Android EditTextソフトキーボードの質問
- 16. ソフトキーボードのボタンを入力 - Android
- 17. Android Widget onClick
- 18. Android onClickスライドの次のアクティビティへの移行
- 19. OnClick to TextView Android
- 20. Androidの通知onClickアクティビティのオープンに失敗しました
- 21. NullPointerException onアクティビティonCreate
- 22. Button OnClickイベントAndroid
- 23. ソフトキーボードを閉じるためにアクティビティから関数を呼び出すandroid
- 24. Android通知onclick
- 25. android - オンデマンドでソフトキーボードを表示
- 26. AndroidソフトキーボードがRecyclerViewを隠す
- 27. Android 7.0でソフトキーボードを選択
- 28. Android actionBar OnClick()
- 29. Android BottomSheetDialogレイアウトにはボタンがあり、アクティビティにはonclick navigat
- 30. Android Butterknife add Textview onClick
少し精巧にできますか?現在アクティブなのは、アプリが開いている場合、またはユーザーが画面上で操作を行っている場合です。 – Praga
@Pragaこれは、ユーザーが画面上でアクションを実行していることを意味します。 – Linussjo
その後、キーボード操作に頼る必要はありません。 Faa kmの答えに行くことができます。 – Praga