如何在onClickListener中为EditText Android的Drawable权限禁用粘贴(内部图标EditText)

时间:2016-07-16 13:31:28

标签: android android-widget

我有EditText及其中的图标

<EditText
    android:id="@+id/myedittext"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:drawableRight="@mipmap/microphone"/>

我为onClickListener

Drawable权限设置EditText
myeditText.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            final int DRAWABLE_LEFT = 0;
            final int DRAWABLE_TOP = 1;
            final int DRAWABLE_RIGHT = 2;
            final int DRAWABLE_BOTTOM = 3;

            if(event.getAction() == MotionEvent.ACTION_UP) {
                if(event.getRawX() >= (myeditText.getRight() - myeditText
      .getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width())) {  
                    // your action here
                    Toast.makeText(getApplicationContext(),
                            "speak",Toast.LENGTH_SHORT).show();
                    return true;
                }
            }
            return false;
        }
    });

当我点击EditText Toast右侧的图标时,会向我显示并工作,但也会在EditText上显示粘贴选项。 如何在右键单击图标时删除粘贴?

3 个答案:

答案 0 :(得分:1)

就我而言,从for record in records: if record[2] < record[5]: # I'm assuming the column index 2 and 5 have the relevant table column values do something here else: do something else here 更改为ACTION_UP生效。当然,行为发生了明显变化。而且光标仍然跳到文本的结尾。

答案 1 :(得分:0)

您可以查看this问题,了解如何停用粘贴

但是我建议别的东西,而不是禁用粘贴,你可以用不同的方式做到这一点。看看whatsapp的麦克风按钮+ EditText 展示位置,我注意到它们是两个不同的元素,这就是你可以做的。将EditText包裹在水平LinearLayout中,然后在右端放置一个带麦克风的按钮。我希望你能设法使它发挥作用,并且你理解我的想法。

答案 2 :(得分:0)

只需将 android:longClickable =“ false” 设置为编辑框即可。