用于从 Kotlin 中的适配器访问数据的 Java 类

标签 java android kotlin interface android-arrayadapter

升级到 Kotlin 我谈到了我用来从自定义回收器适配器中获取数据的 Java 接口(interface)。现在在 Kotlin 中,我现在还不完全了解如何访问界面。这是我尝试在我的 Kotlin 应用程序中运行的 Java 代码。

btOK 是我的 XML 中的一个按钮,它收集我的用户在 ExpListView ( You can find the full code here ) 中选择的所有选定项目,并且由于界面“SelectedDrink”我能够访问数据。

这里是带有 ClickListener 的按钮:

btOk.setOnClickListener(view -> {

   Button button = (Button) view;
   msg = "Upload!\n";
   ArrayList<SelectedDrink> selectedDrinks = expandableListAdapterDrinks.getOrderList();
   Gson gson = new Gson();
   for (SelectedDrink selectedDrink : selectedDrinks) {
   msg += "aid=" + selectedDrink.content + "+qty=" + selectedDrink.qty + "\n";
   }
   final String jsonOrder = gson.toJson(selectedDrinks);
   sendToServer(jsonOrder,sessionId);
 }
});

这是界面:

public class SelectedDrink {
    String content;
    Double qty;
}

现在在 Kotlin 中,这两个男孩给我一个错误:

selectedDrink.content 
selectedDrink.qty

那个

"Cannot access: 'content/qty': it is public/package in SelectedDrink"

我只是不明白错误是什么,也不明白如何解决它。

最佳答案

除了public,你不能在Java中直接访问成员变量,你需要getter/setter来访问它。 只需创建 Getter 方法

public class SelectedDrink {
private String content;
private Double qty;

public String getContent() {
    return content;
}

public Double getQty() {
    return qty;
}    
}

关于用于从 Kotlin 中的适配器访问数据的 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58543544/

相关文章:

android-studio - Ktlint因通配符导入而失败(无法自动更正)

java - NetBeans 是否有任何 "collapse all"导航器 View 中打开目录的快捷方式?

java - getAdapterPosition() 在 OnClick() 方法中每次都返回 -1

java - 解决除子模块之外的依赖关系

android - Osmdroid map 未加载到我的设备上

android - DELPHI XE5 如何在 ANDROID 中发送带送达通知的短信

android - com.huawei.hms :push:5. 3.0.301 中不推荐使用 "AGConnectServicesConfig"类

java - 将结构从 c 发送到 java 进程

java - 如何在左侧操作栏中获取 Logo ?

android - 在房间中将 Flowable<List<Obj1>> 更改为 Flowable<List<Obj2>>