在 Android 的 EditText 中单击 drawableleft 的侦听器?

Posted

技术标签:

【中文标题】在 Android 的 EditText 中单击 drawableleft 的侦听器?【英文标题】:Click listener for drawableleft in EditText in Android? 【发布时间】:2016-02-12 13:05:40 【问题描述】:

是否可以在设计器中声明为 drawableleft 的可绘制对象上添加 OnClickListener

android:drawableLeft="@drawable/ic_password"

或者有什么办法可以在EditText的左侧添加一个ImageView

【问题讨论】:

你可以使用LinearLayout 和两个孩子,ImageViewEditText 这能回答你的问题吗? Handling click events on a drawable within an EditText 【参考方案1】:

对于 drawableleft 点击监听器:

 editText.setOnTouchListener(new 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.getRawX() <= (editText.getCompoundDrawables()[DRAWABLE_LEFT].getBounds().width()))
        
              // your action here
             return true;
        
        return false;
    
);

如果您想要 drawable right 的点击监听器,请使用以下条件

if(event.getAction() == MotionEvent.ACTION_UP) 
            if(event.getRawX() >= (editComment.getRight() - editComment.getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width())) 

【讨论】:

哇,非常感谢。这就是我一直在寻找的东西 不要抄袭别人的答案。至少给他们一些荣誉。 这里是原答案***.com/a/26269435/12555686 请注明原始答案。谢谢【参考方案2】:

你可以通过RelativeLayout来实现:

<RelativeLayout
    android:layout_
    android:layout_
    android:layout_margin="16dp">

    <ImageView
        android:id="@+id/image_id"
        android:layout_
        android:layout_
        android:layout_alignParentLeft="true"
        android:layout_centerInParent="true"
        android:src="@drawable/ic_iamge"/>

    <EditText
        android:id="@+id/text_id"
        android:layout_toRightOf="@id/image_id"
        android:layout_
        android:layout_
        android:layout_centerInParent="true"
        android:layout_marginLeft="16dp"
        android:text="Your text" />

 </RelativeLayout>

并将onClickListener 添加到代码中的ImageView

【讨论】:

我认为这是“或者有没有办法在 EditText 的左侧添加 ImageView”这个问题的正确答案

以上是关于在 Android 的 EditText 中单击 drawableleft 的侦听器?的主要内容,如果未能解决你的问题,请参考以下文章

Android:为EditText打开键盘时处理后退按钮单击

android中EditText输入类型为啥不能设置为中文

android EditText,单击另一个对象时移除焦点

Android EditText单击触发onclick事件处理

单击按钮更改EditText

从 List Adapter Android 中的按钮单击编辑 EditText