Метод Button#setText()
получает String, который является реализацией CharSequence, и когда вы делаете messages[index]
, вы получаете ArrayList, содержащий каждую ячейку строки в элементе, то есть массив массивов.
Вы должны собрать их в одну строку.Один из способов сделать это, если список List<String>
, это:
String stringMessage = String.join(", ", messages[index]);
Тогда вы сможете сделать setText()
cal без исключений:
@Override
public void onClick(View v) {
index++;
String stringMessage = String.join(", ", messages[index]);
btn_message.setText(stringMessage);
}
Likeпри этом вы объедините их с комой и пробелом ,
, если вы хотите присоединиться к ним как-нибудь еще, просто укажите другую присоединяющую строку в первом параметре #join()
Если ArrayList не является StringВы можете использовать лямбда-выражения для выполнения той же операции:
String messageString = messages[index].stream().map(Object::toString)
.collect(Collectors.joining(", "));