200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > android drawable 点击事件 Android中EditText的drawableRight属性设置点击事件

android drawable 点击事件 Android中EditText的drawableRight属性设置点击事件

时间:2019-08-31 17:36:39

相关推荐

android drawable 点击事件 Android中EditText的drawableRight属性设置点击事件

这个方法是通用的,不仅仅适用于edittext,也适用于textview、autocompletetextview等控件。

google官方api并没有给出一个直接的方法用来设置右边图片的点击事件,所以这里我们需要通过点击位置来判断点击事件,效果如图:

布局文件:

xmlns:tools="/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingbottom="@dimen/activity_vertical_margin"

android:paddingleft="@dimen/activity_horizontal_margin"

android:paddingright="@dimen/activity_horizontal_margin"

android:paddingtop="@dimen/activity_vertical_margin"

tools:context="com.example.drablerighttest.mainactivity" >

android:id="@+id/et"

android:layout_width="350dp"

android:layout_height="wrap_content"

android:drawableright="@drawable/search_clear_pressed"

android:text="@string/hello_world" />

mainactivity.java

public class mainactivity extends activity {

private edittext et;

@override

protected void oncreate(bundle savedinstancestate) {

super.oncreate(savedinstancestate);

setcontentview(r.layout.activity_main);

et = (edittext) this.findviewbyid(r.id.et);

et.setontouchlistener(new ontouchlistener() {

@override

public boolean ontouch(view v, motionevent event) {

// et.getcompounddrawables()得到一个长度为4的数组,分别表示左右上下四张图片

drawable drawable = et.getcompounddrawables()[2];

//如果右边没有图片,不再处理

if (drawable == null)

return false;

//如果不是按下事件,不再处理

if (event.getaction() != motionevent.action_up)

return false;

if (event.getx() > et.getwidth()

- et.getpaddingright()

- drawable.getintrinsicwidth()){

et.settext("");

}

return false;

}

});

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。