繁体   English   中英

如何在Android Java中单击按钮时从MainActivity以外的类调用函数

[英]How to call a function from a class other than MainActivity on button click in Android Java

我想在 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 注释(看看 Hussein Bilal 的回答)。 避免这种情况的好方法是使用 Android Studio 提供的自动完成功能。

以下是setOnClickListener的简化 lambda 形式,如果您将现有内容替换为以下内容,它应该可以工作:

b.setOnClickListener((View v) -> {
    myfunction();
});

您应该在 onClick 函数上方添加 @Override 注释。 那么你不能在非静态方法中访问静态函数。 如果您想在另一个类中访问该函数,则将该函数设为静态并使用编写该函数的类的名称访问它。 并且非静态函数只能由该类的实例调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM