【问题标题】:Access public void in another class from MainActivity (Android)从 MainActivity (Android) 访问另一个类中的 public void
【发布时间】:2016-08-11 16:44:50
【问题描述】:

我在一个名为 Flashlight 的类中有两个公共 void,它们是:

public void turnOnFlashLight()

public void turnOffFlashLight()

如何在 Main Activity 中访问这些内容?

我找到了很多关于在 MainActivity 中使用另一个类但不是只访问特定部分的指南(在这种情况下,我试图打开或关闭手电筒)。

这是 MainActivity 的内容

public class MainActivity extends android.support.v7.app.ActionBarActivity {

@Override
protected void onCreate(android.os.Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    httpserver();

public void httpserver() {
    AsyncHttpServer server = new AsyncHttpServer();
    java.util.List<WebSocket> _sockets = new java.util.ArrayList<WebSocket>();
    server.listen(5000);
    server.get("/flashon", new HttpServerRequestCallback() {
        static final int CAMERA_PIC_REQUEST = 0;
        public void onRequest(AsyncHttpServerRequest request, AsyncHttpServerResponse response) {
            response.send("Ok");
            Flashlight.turnOnFlashLight();

        }
    });
}
}

这是手电筒类https://stackoverflow.com/a/31289731/6696740

谢谢你:)

【问题讨论】:

  • 你能分享你的尝试吗?
  • nbryans,确定我已经发布了 Flashlight 代码的链接。此时,第二个答案不太适用“手电筒中的上下文不能应用于()”。

标签: java android


【解决方案1】:

确保该类已导入 MainActivity。您应该可以只使用 Flashlight.turnOnFlashLight()Flashlight.turnOffFlashLight()。您可能还想创建 Flashlight 类的实例,例如 Flashlight flashlight = Flashlight.newInstance(),然后是 flashlight.turnOnFlashLight() 或 Flashlight.turnOffFlashLight()。

【讨论】:

  • 哇,真快,谢谢!如果类不是并且不能设置为静态,怎么能做到这一点?我得到“无法从静态上下文中引用”。
  • 这是 Flashlight 类代码:stackoverflow.com/a/31289731/6696740 这是我尝试在 MainActivity 中使用它的地方 public void onRequest(AsyncHttpServerRequest request, AsyncHttpServerResponse response) { response.send("Ok");手电筒.turnOnFlashLight(); }
  • 你能发布你的 MainActivity.java 吗?
  • 你不能简单地写'Flashlight.turnOnFlashLight()',因为方法不是静态的。
  • 我在主要问题中添加了主要活动的内容(不包括进口)。
【解决方案2】:

在MainActivity中(假设FlashLight类的构造函数不需要任何输入):

import Flashlight;
...
//where you need to call those methods
Flashlight flashLight = new Flashlight();
flashlight.turnOnFlashLight();
//OR
flashlight.turnOffFlashLight();

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-03-19
  • 2015-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-12
  • 1970-01-01
相关资源
最近更新 更多