我正在做的是,我点击按钮创建编辑文本视图。我想要的是,只要一个编辑文本视图出现一个小按钮也会出现在它的右边(有(X)图像(所以,我可以删除该特定的编辑文本视图)。我能够生成编辑文本视图,但不知道按钮创建。请指导或帮助我。
答案 0 :(得分:0)
您可以像EditText视图一样创建一个新按钮,其中包含一个x,并将其对齐EditText字段的右侧,然后在按钮上执行onclicklistener,该按钮将调用db或任何您用于删除实际文本,然后您可以从布局中删除视图和编辑按钮。但是,从您提供的代码中我看不到有关正在实现的onClickListener的任何内容。
答案 1 :(得分:0)
这是我的实施
<CustomEditText
android:id="@+id/edittext1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawableRight="@drawable/ic_action_cancel"
android:ems="10"
android:focusable="true"
android:singleLine="true"
android:textColor="#000" />
其中ic_action_cancel
是x
图标。
以下是自定义Edittext类
public class CustomEditText extends EditText {
private Drawable drawableRight;
int actionX, actionY;
public CustomEditText(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomEditText(Context context) {
super(context);
}
@Override
public void setCompoundDrawables(Drawable left, Drawable top,
Drawable right, Drawable bottom) {
if (right != null) {
drawableRight = right;
}
super.setCompoundDrawables(left, top, right, bottom);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Rect bounds;
if (event.getAction() == MotionEvent.ACTION_DOWN) {
actionX = (int) event.getX();
actionY = (int) event.getY();
// this works for left since container shares 0,0 origin with bounds
if (drawableRight != null) {
bounds = null;
bounds = drawableRight.getBounds();
int x, y;
int extraTapArea = 13;
int extraTapArea = 20;
x = (int) (actionX + extraTapArea);
y = (int) (actionY - extraTapArea);
x = getWidth() - x;
if (x <= 0) {
x += extraTapArea;
}
if (y <= 0)
y = actionY;
if (bounds.contains(x, y)) {
setText("");
return false;
}
return super.onTouchEvent(event);
}
}
return super.onTouchEvent(event);
}
}