如何捕获Android App中禁用的EditText中的onclick事件

Bal*_*ool 46 android onclick android-edittext

我有一个EditText,我呈现为禁用,以便用户无法编辑内容,也避免弹出键盘.但现在我想在EditText中捕获onclick事件并识别被单击的单个单词.我们非常欢迎任何帮助.

谢谢,Balkrishna.

Raj*_*ran 95

在您的EditText设置属性android:focusable="false"android:enabled="true".并设定OnClickListener为那EditText.单击Edittext会触发该onClick()方法,但无法对其进行编辑.我刚尝试过.

  • 同时设置android:longClickable ="false",没有长按,它将进入选择/粘贴模式 (4认同)
  • 您还需要考虑 `android:cursorVisible="false"` 以避免用户在单击 EditText 时快速看到真实的光标。 (2认同)

Ome*_*fiq 5

您可以使用来使该组件不可单击。

editText.setClickable(false);
Run Code Online (Sandbox Code Playgroud)

通过减小Alpha值使组件在视觉上看起来是禁用的。

editText.setAlpha(0.5f);
Run Code Online (Sandbox Code Playgroud)

它将允许您在组件上设置OnTouchListener,通过它可以执行所需的操作。

editText.setOnTouchListener(new View.OnTouchListener() {
                    @Override
                    public boolean onTouch(View v, MotionEvent event) {
                        Toast.makeText(getApplicationContext(),"Component is disabled", Toast.LENGTH_SHORT).show();
                        return false;
                    }
                });
Run Code Online (Sandbox Code Playgroud)

  • 或者尝试在侦听器中执行此操作: if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { // 您的代码 } (2认同)