我正在开发一个应用程序,我需要在某些按钮上关闭 onClicKListener
。
我有一个外部运行方法,我想在onClickListener
上切换按钮。在我的onCreate方法中,我有这样的代码:
button.setOnClickListener(this);
在我外部调用的方法中(这是一个不在onCreate上的方法)我有一个语句,当满足某个条件时会说button.setOnClickListener(null);
。
现在我想知道如果在同一方法中如果满足另一个条件,则重新开启onClickListener
。它不适用于button.setOnClickListener(this);
在我的活动中,我通过扩展活动实施onClickListener
等来实施OnClickListener
。
提前致谢!
答案 0 :(得分:2)
不是每次不希望按钮工作时都将onClickListener设置为null,为什么不使用enabled属性?
private Button myButton;
@Override
public void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myButton = (Button) findViewById(R.id.mynewbutton);
myButton.setOnClickListener(/* your click listener here */);
myButton.setEnabled(false);
}
private void whateverFunction() {
if(true) {
myButton.setEnabled(true);
} else {
myButton.setEnabled(false);
}
}
这样,您可以在禁用时对触摸做出响应。
答案 1 :(得分:2)
private boolean enableClick;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
if(enableClick)
{
// do
}
}
}
);
}
您只需要更新enableClick的值。
答案 2 :(得分:1)
您可以在flag
方法中实现onClick
,以保护在onClick
内执行的方法。无需将onClickListener
设置为null
,只需将flag
设置为false
,onClick
方法将不执行任何操作。希望这会有所帮助。