1

我有一个EditText设置drawablesEditText. 我正在drawables用不同的场景切换它们。我有clearTextrefreshIcon作为我的drawables。这两个都在正确更改,但我无法为我的两个drawables. 这是我为清除文本所做的工作EditText

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它时,它会清除文本。这很好很容易。

现在,我有另一个drawableie refreshIcon,当 onEditText refreshIcon出现时,它没有为刷新目的获取特定事件。

clearText我使用了与for相同的代码refreshIcon。我无法打印Logwhen refreshIconis clicked/touched

我在做什么?任何形式的帮助将不胜感激。

4

1 回答 1

0

您可以将 2 个可绘制对象组合成 LevelListDrawable。然后使用 setLevel 函数在它们之间切换。您始终可以通过 getLevel 方法找出哪个图层(可绘制)可见并执行适当的操作。

于 2013-07-22T07:16:05.260 回答