Класс Java для доступа к данным из адаптера в Котлине - PullRequest
1 голос
/ 24 октября 2019

Обновление до Kotlin Я подошел к тому интерфейсу Java, который использовал для извлечения данных из пользовательского адаптера Recycler. Сейчас в Kotlin я не совсем понимаю, как получить доступ к интерфейсу сейчас. Это мой Java-код, который я пытаюсь получить в моем приложении Kotlin.

btOK - это кнопка в моем XML, которая собирает все выбранные элементы, которые мой пользователь выбрал в ExpListView ( Вы можете найтиполный код здесь ) и благодаря интерфейсу "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

, что

"Невозможно получить доступ: 'content / qty': общедоступно / пакет в SelectedDrink"

Я просто не понимаю, в чем ошибка, и как ее исправить.

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Вы не можете получить доступ к переменным-членам напрямую в Java, кроме public, вам нужен getter / setter для доступа к немуПросто создайте методы Getter

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

public String getContent() {
    return content;
}

public Double getQty() {
    return qty;
}    
}
0 голосов
/ 24 октября 2019

Поля должны быть открытыми

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