我想在Android中单击按钮时调用一个函数。到目前为止,所有的例子似乎只能从MainActivity.java
调用它,但我想从不同的类调用它。我该怎么做?
我尝试使用 android:on_click="myfunction()"
从 activity_main.xml
调用它,但这只能从 MainActivity.java
调用。我也尝试使用onClick
侦听器,但我似乎无法让它工作。
到目前为止,我有这个:
Button onoroff = (Button)findViewById(R.id.activate);
onoroff.setOnClickListener(new View.OnClickListener() {
public void onClick()
{
myfunction();
}
});
但这表明:
; Expected
这边onClick() *here* {
.
是否有其他方法,或者我是否没有正确格式化。我想做的只是当按下按钮时,它会调用myfunction()
。任何帮助将不胜感激。谢谢!
试试这个:
onoroff.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
myfunction();
}
});
您的onClick函数未正确覆盖...不正确的方法签名和没有@Override注释(看看侯赛因·比拉尔的答案)。避免这种情况的好方法是使用Android Studio提供的自动完成功能。
以下是setOnClickListener
的简化 lambda 形式,如果您将现有内容替换为以下内容,它应该可以工作:
b.setOnClickListener((View v) -> {
myfunction();
});
您应该在 onClick 函数上方添加@Override注释。好吧,您不能在非静态方法中访问静态函数。如果你想在另一个类中访问该函数,请将该函数设为静态,并使用编写该函数的类的名称访问它。非静态函数只能由该类的实例调用。