Добавление данных из текстового представления в список массивов

87
8

Я пытаюсь добавить данные textview в массив. myLogClass - это список массивов, а следующие коды:

    String txt_datetime = txt_date.getText().toString();; 
String txt_messageData = txt_message.getText().toString();
String txt_day = this.dayName;

List< myLogClass > results = null;
results = new ArrayList< myLogClass >();

results.add( new myLogClass( txt_datetime, txt_messageData, txt_day ) );

У меня есть метод setter и getter в myLogClass и имеет конструктор с 3 переменными, который выглядит следующим образом:

public diaryLogs(int dateTime, String messagetxt, String dayN){

setDayCode(dateTime);
setDateTime(messagetxt);
setDairyText(dayN);

}//end constructor.

Хотя я пытался добавить метод, он говорит, что конструктор не определен.

заранее спасибо за помощь

спросил(а) 2021-01-19T15:12:15+03:00 2 месяца, 3 недели назад
1
Решение
96

Чтобы иметь возможность добавить экземпляр diaryLogs в массив результатов, ArrayList должен быть diaryLogs. Здесь я сделал модификацию, прежде чем перейти к другой проблеме.

Определение конструктора diaryLogs - это (int dateTime, String messagetxt, String dayN), который считается, что функция ожидает int, а затем две строки в качестве параметров.

Чтобы получить эту работу, вам нужно преобразовать строку txt_datetime в int перед передачей ее в конструктор.

String txt_datetime = txt_date.getText().toString();; 
String txt_messageData = txt_message.getText().toString();
String txt_day = this.dayName;

// Convert to Integer
int txt_datetime_int = Integer.parseInt(txt_datetime);

// Define the ArrayList as diaryLogs
List< diaryLogs > results = null;
results = new ArrayList< diaryLogs >();

// Pass as Integer
results.add( new diaryLogs( txt_datetime_int , txt_messageData, txt_day )

ответил(а) 2021-01-19T15:12:15+03:00 2 месяца, 3 недели назад
44

В этой строке:

results.add( new diaryLogs( txt_datetime, txt_messageData, txt_day ) );

txt_datetime - это строка, в то время как ожидается целое число. Вот почему вы получаете это сообщение.

ответил(а) 2021-01-19T15:12:15+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема