Java Android:是否可以直接从setOnClickListener()调用方法?
我正在动态创建一些按钮,理想情况下,如果按下按钮,我希望能够运行一个方法 像下面这样的事情可能吗Java Android:是否可以直接从setOnClickListener()调用方法?,java,android,methods,onclicklistener,Java,Android,Methods,Onclicklistener,我正在动态创建一些按钮,理想情况下,如果按下按钮,我希望能够运行一个方法 像下面这样的事情可能吗 private void someMethod(int ID){ //on button pressed do something with the ID } private void otherMethod(){ for( Program element : someList) { addButton.setOnClickListener(someMethod(element
private void someMethod(int ID){
//on button pressed do something with the ID
}
private void otherMethod(){
for( Program element : someList)
{
addButton.setOnClickListener(someMethod(element.getID));
}
}
显然,这只是一些代码的模型来说明我的问题。我知道你可以实例化一个新的类,所以看起来你应该能够调用一个方法,尽管到目前为止我只是在尝试中不断出错
我在网上浏览了一下,但找不到任何答案,所以我想在这里提问。
setOnClickListener
定义了单击按钮时会发生什么。为同一个按钮设置多次是没有意义的;您设置的最后一个将是活动的
要调用侦听器中的方法,请声明匿名类重写:
addButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
someMethod(...);
}
});
如果您试图设置具有类似功能的多个按钮,则需要在按钮之间循环(例如,在列表中),并设置每个按钮的OnClickListener
s。要实现每个按钮的不同变量,可以使用视图
:
现在,您可以简单地将XML(或)中的
按钮标记属性设置为您希望的任何值,它将被传递到侦听器(从而传递到方法)。如果这是一个愚蠢的问题,很抱歉,但为什么循环在它里面?我不确定您在追求什么。我编辑了我的答案,以防您尝试使用不同的参数调用多个按钮someMethod
。
for (Button b : buttons) {
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
someMethod(v.getTag());
}
});
}