我有一個EditText
,其中我將drawables
設置爲EditText
的右側。我正在用不同的場景切換那些drawables
。我有clearText
和refreshIcon
作爲我的drawables。這兩個都正確地改變,但我無法爲我的兩個drawables
獲得單獨的事件。下面是我在做什麼從EditText
清除文字:使用不同的drawable在setCompoundDrawables上獲取不同的事件
String value = "";
final Drawable x = getResources().getDrawable(R.drawable.clear_text);
x.setBounds(0, 0, x.getIntrinsicWidth(), x.getIntrinsicHeight());
getUrl.setCompoundDrawables(null, null, value.equals("") ? null : x,
null);
getUrl.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (getUrl.getCompoundDrawables()[2] == null) {
return false;
}
if (event.getAction() != MotionEvent.ACTION_UP) {
return false;
}
if (event.getX() > getUrl.getWidth() - getUrl.getPaddingRight()
- x.getIntrinsicWidth()) {
getUrl.setText("");
getUrl.setCompoundDrawables(null, null, null, null);
}
return false;
}
});
當我點擊clearText
drawable
它清除文本。這很好,很容易。
現在,我還有一個drawable
即refreshIcon
,在EditText
當refreshIcon
是顯示了它不是爲刷新目的獲得特定的事件。
我使用了與clearText
相同的代碼作爲refreshIcon
。當refreshIcon
是clicked/touched
時,我無法打印Log
。
我在做什麼工作?任何形式的幫助將不勝感激。
你可以請解釋一下如何。我之前沒有聽說過layerDrawable。如果你能用真正有用的代碼解釋我。 – Anupam
我有一個錯誤)你需要[LevelListDrawable](http://developer.android.com/guide/topics/resources/drawable-resource.html#LevelList)。 – Leonidos
我覺得'LayerDrawable'不適合我。看到這個語句'管理一系列其他Drawable的Drawable。這些按照數組順序繪製,因此具有最大索引的元素將繪製在頂部。最大的索引號,將不得不爲此改變很多。我們不能爲兩個不同的drawables使用相同的方法。 – Anupam