EditText
의 EditText
오른쪽에 drawables
을 설정하고 있습니다. 다른 시나리오를 사용하여 해당 번호를 drawables
으로 바꿉니다. 내 드로어 블로는 clearText
과 refreshIcon
입니다. 이 두 가지 모두 올바르게 변경되지만 내 drawables
에 대해 별도의 이벤트를 가져올 수 없습니다. 여기에 내가 EditText
에서 텍스트를 지우는 뭘하는지입니다 : 내가 clearText
drawable
을 클릭하면differnet 드로어 블을 사용하여 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;
}
});
가 텍스트를 지 웁니다. 그것은 좋고 쉬웠다.
는 지금, 나는 refreshIcon
가 새로 고침 목적을 위해 특정 이벤트를 받고 있지 않습니다 보여주는 또 다른 drawable
즉 refreshIcon
, EditText
에 있습니다.
refreshIcon
에 대해 clearText
과 동일한 코드를 사용했습니다. refreshIcon
이 clicked/touched
일 때 Log
을 인쇄 할 수 없습니다.
나는 무엇을하고 있니? 모든 종류의 도움을 주시면 감사하겠습니다.
설명해 주실 수 있습니까? 전에 layerDrawable에 대해 들어 보지 못했습니다. 만약 당신이 정말 도움이 될 코드를 사용하여 설명 할 수 있습니다. – Anupam
실수가 있습니다.) [LevelListDrawable] (http://developer.android.com/guide/topics/resources/drawable-resource.html#LevelList)이 필요합니다. – Leonidos
'LayerDrawable'이 제게 적합하지 않다고 생각합니다. 이 문을 보자.'다른 Drawable의 배열을 관리하는 Drawable. 이것들은 배열 순서로 그려 지므로 가장 큰 인덱스를 가진 요소가 맨 위에 그려집니다. 가장 큰 인덱스 번호는이를 위해 많이 변경해야합니다. 우리는 두 개의 서로 다른'드로어 블 '에 대해서 같은 방법을 사용할 수 없습니까? – Anupam