【问题标题】:Using interfaces in modules在模块中使用接口
【发布时间】:2021-02-28 21:11:16
【问题描述】:

我正在尝试在 libgdx 核心模块中使用 FirebaseDatabase。我做了界面,但我不知道我将如何使用。我的意思是我没有看到使用这样的界面。我的意思是我想获得一个示例代码。例如,我想从 menuScreen 类发送 mesaj 到 firebas 数据库。

核心接口

public interface FirebaseInterfaceInCore {
    public void sendMessage(String mesaj);
}

android实现接口中的类

public class FirebaseAndroid implements FirebaseInterfaceInCore {

    @Override
    public void sendMessage(String mesaj) {
        FirebaseDatabase database = FirebaseDatabase.getInstance();
        DatabaseReference myRef = database.getReference("message");
        myRef.setValue(mesaj);
    }
}

android模块的Louncher类

public class AndroidLauncher extends AndroidApplication {
    @Override
    protected void onCreate (Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
    
      initialize(new ColorKeeper(new FirebaseAndroid()), config);
    }
}

我正在使用 Core 开发游戏

class MenuScreen :Screen() {
override fun show() {}
override fun render(delta: Float) {}

【问题讨论】:

  • “我将如何使用”。你将如何使用做什么?你想完成什么?简单地使用没有任何上下文的界面来解释为什么并不是一个真正有意义的问题。
  • 我的意思是我想要一个示例代码。例如,我想从 menuScreen 类向 firebas 数据库发送一个 mesaj。如您所见,所有代码都在那里。

标签: java kotlin libgdx box2d


【解决方案1】:

在您的应用程序中是主类ColorKeeper,您可以从中获取接口引用的唯一位置是此类的构造函数。然后,您需要在某处存储对此引用的引用,然后在创建MenuScreen 时将其传递到那里。然后就可以调用了。

class ColorKeeper {
  private FirebaseInterfaceInCore firebaseInterface;

  private createMenuScreen() {
    new MenuScreen(firebaseInterface);
  }

  public ColorKeeper(FirebaseInterfaceInCore firebaseInterface) {
    this.firebaseInterface = firebaseInterface;
  }
}

class MenuScreen {
  public MenuScreen(FirebaseInterfaceInCore firebaseInterface) {
    firebaseInterface.sendMessage("message");
  }
}

【讨论】:

    猜你喜欢
    • 2013-10-08
    • 2011-04-17
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 2017-09-27
    相关资源
    最近更新 更多