【问题标题】:How to capture onclick event in disabled EditText in Android App如何在 Android App 的禁用 EditText 中捕获 onclick 事件
【发布时间】:2012-03-15 17:06:04
【问题描述】:

我有一个 EditText,我将其显示为禁用,以便用户无法编辑内容并避免弹出键盘。但现在我想在 EditText 中捕获 onclick 事件并识别正在单击的单个单词。 欢迎任何帮助。

谢谢, 巴尔克里希纳。

【问题讨论】:

    标签: android onclick android-edittext


    【解决方案1】:

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

    【讨论】:

    • 感谢 Rajkiran.. 现在我可以获得 onclick 事件.. 但下一个问题是要抓住被点击的单词..
    • 好吧,我看不出有什么方法可以做到这一点。你将不得不玩弄它。如果您得到相同的解决方案,请不要忘记发布答案。祝你好运!
    • 同时设置android:longClickable="false",不长按会进入选择/粘贴模式
    • 您还需要考虑android:cursorVisible="false",以避免用户在单击 EditText 时看到真正的光标。
    【解决方案2】:

    您可以通过使用使组件不可点击。

    editText.setClickable(false);
    

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

    editText.setAlpha(0.5f);
    

    它将允许您在组件上设置 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;
                        }
                    });
    

    【讨论】:

    • 单点触控多次调用
    • @ChandraKiran 尝试返回 true
    • 或者尝试在监听器中这样做: if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { // 你的代码 }
    猜你喜欢
    • 1970-01-01
    • 2013-05-10
    • 2012-04-30
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 2011-08-18
    相关资源
    最近更新 更多