【问题标题】:Java Class to access data from Adapter in KotlinJava 类从 Kotlin 中的适配器访问数据
【发布时间】:2019-10-24 14:29:02
【问题描述】:

升级到 Kotlin 我想到了我用来从自定义回收器适配器中获取数据的 Java 接口。现在在 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

那个

“无法访问:‘内容/数量’:它是公共/中的 精选饮品”

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

【问题讨论】:

    标签: java android kotlin interface android-arrayadapter


    【解决方案1】:

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

    public class SelectedDrink {
    private String content;
    private Double qty;
    
    public String getContent() {
        return content;
    }
    
    public Double getQty() {
        return qty;
    }    
    }
    

    【讨论】:

      【解决方案2】:

      字段必须是公开的

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-20
        相关资源
        最近更新 更多