升级到 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/