Android 检测EditText上的触摸,但不中断它?

Android 检测EditText上的触摸,但不中断它?,android,Android,我需要知道用户何时触摸/轻触/单击我活动中的编辑文本 如何在不中断事件的情况下执行此操作,使键盘仍能正常显示 (如果可能的话,我需要在操作系统显示键盘之前知道这一点)您应该能够通过在EditText中附加一个来实现这一点。如果您担心阻塞OnClickListener中的UI线程,您可以生成一个新线程并在其中执行您的工作-但是,如果您这样做,则无法保证在键盘显示之前完成工作。更不详细。 txtEdit.setOnTouchListener(new View.OnTouchListener(){

我需要知道用户何时触摸/轻触/单击我活动中的编辑文本

如何在不中断事件的情况下执行此操作,使键盘仍能正常显示


(如果可能的话,我需要在操作系统显示键盘之前知道这一点)

您应该能够通过在EditText中附加一个来实现这一点。如果您担心阻塞OnClickListener中的UI线程,您可以生成一个新线程并在其中执行您的工作-但是,如果您这样做,则无法保证在键盘显示之前完成工作。

更不详细。

txtEdit.setOnTouchListener(new View.OnTouchListener(){
    public boolean onTouch(View view, MotionEvent motionEvent) {                                                       
         // your code here....
         getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);                
         return false;
    }
});
同样的方法,但使用kotlin:

txtEdit.setOnTouchListener({ view, motionEvent ->
    // your code here....
    false
})

此行
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT\u输入状态始终可见)是不必要的,因为当您点击editText视图时会显示键盘。

OnTouchListener
为我调用了两次(在Pixel 2上运行饼图)。所以我用
OnFocusChangeListener

txtEdit.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus) {
                    Log.d(TAG,"Focused Now!");
                }
            }
        });

如果我连接了一个新的onFocusChangeListener,它会中断键盘,必须按两次才能显示它。当我重写时,有没有办法调用super或其他什么?也许我正在接近……好的。看看这个。。。事实上,这就是我所遵循的例子。我也尝试过获取“活动”窗口和setSoftInputMode,但总是需要轻敲两下才能显示键盘。谢谢,尽管我不需要“return false;”上面的行由于键盘自动出现。感谢您发布此问题的答案!在堆栈溢出时不鼓励只使用代码的答案,因为原始海报(或未来读者)可能很难理解它们背后的逻辑。请编辑您的问题并对代码进行解释,以便其他人可以从您的答案中获益。谢谢
txtEdit.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus) {
                    Log.d(TAG,"Focused Now!");
                }
            }
        });