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