Android 在onClickListener中修改视图
我已经在一个单独的类中实现了onClickListener和我的应用程序的主要活动。主类包含一些按钮和一些edittext,当用户按下cancel按钮时,edittext提示应该被重置。 主要活动Android 在onClickListener中修改视图,android,onclicklistener,Android,Onclicklistener,我已经在一个单独的类中实现了onClickListener和我的应用程序的主要活动。主类包含一些按钮和一些edittext,当用户按下cancel按钮时,edittext提示应该被重置。 主要活动 public ButtonListener(Context cx , Button b, EditText f) { cntx = cx; button = b; et = f; } @Override public void onClick(View v) { //
public ButtonListener(Context cx , Button b, EditText f) {
cntx = cx;
button = b;
et = f;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//check wich button was pressed
if(button.getId() == R.button.button_cancel) {
et.setHint(R.string.et_nome);
}
else {
//operations for other buttons
但它不起作用。当我按“取消”时,编辑文本不会被删除。
在主要活动中,我用
Button b = (Button)findViewById(R.button.button_cancel);
并设置侦听器
b.setOnclickListener(new ButtonListener(this, b, edittext));
怎么了?您应该更改:
if(button.getId() == R.button.button_cancel)
致:
因此,代码检查引发单击事件的元素的标识符,而不是您的成员变量button
,您应该更改:
if(button.getId() == R.button.button_cancel)
致:
因此,代码将检查引发单击事件的元素的标识符,而不是您的成员变量
按钮尝试将其文本设置为空:
et.setText(“”)代码>
您可以查看其他方法
另一种处理方法是隐藏按钮以暂时消除它。签出。尝试将其文本设置为空白:
et.setText(“”)代码>
您可以查看其他方法
另一种处理方法是隐藏按钮以暂时消除它。签出。setHint()
不会删除文本,它会设置视图为空时显示的提示setHint()
不会删除文本,它会设置视图为空时显示的提示这应该不是问题,因为我用一条日志消息检查了if语句的调用是否正确,它可以工作,但有点多余。考虑使用<<代码>按钮>代码> > < <代码> r.Buttual.ButoNoXCuff剔除< /代码>的另一个<代码> ButoListListabue/Cux>类。现在该调用的if语句永远不会为真。这应该不是问题,因为我已经用一条日志消息检查了if语句,它被正确地调用了。很好,它可以工作,但有点多余。考虑使用<<代码>按钮>代码> > < <代码> r.Buttual.ButoNoXCuff剔除< /代码>的另一个<代码> ButoListListabue/Cux>类。现在该调用的if语句将永远不会为真。是的,它有效。你能解释一下为什么我不能使用setHint()吗?setHint()是一个永久元素,当视图被加载时,它会被用户交互清除。是的,它可以工作。你能解释一下为什么我不能使用setHint()吗?setHint()是一个永久元素,当视图被加载时,它会被用户交互清除。