Задать вопрос
@Dropych

JAVA Как Получить значение переменной из for?

Как из метода send передать каждое значение numberS ?
Это кнопки для телеграмм, формируются они циклом for. Хочу , чтоб по нажатию они обновляли запись в бд, для этого хочу передать значение переменной numberS. Как это правильно сделать?

public void send(){
String[] greportsArr = new String[greportsL.size()];
greportsArr = greportsL.toArray(greportsArr);
for(int i = 0; i < numL.size(); i++){
    numberL = numL.get(i);
    String reportsL = greportsArr[i];
    String[] numLArr = new String[numL.size()];
    numLArr = numL.toArray(numLArr);
    numberS = numLArr[i];
for(int it = 0; it < userids.size(); it++){
    String userid = userids.get(it);        
  ------
inlineKeyboardButton1.setText(numberS);
inlineKeyboardButton1.setCallbackData("Agree");
----
System.out.println(numberS);  // тут значение еще верное

try {
   execute(message);
} catch (TelegramApiException e) {
    e.printStackTrace();
}
}   }
   }


public void onUpdateReceived(Update update) {
----
} else if (update.hasCallbackQuery()) {
        String call_data = update.getCallbackQuery().getData();
    long message_id = update.getCallbackQuery().getMessage().getMessageId();
    long chat_id = update.getCallbackQuery().getMessage().getChatId();
    System.out.println(numberS);   // тут уже приходит последнее значение в массиве.
    if (call_data.equals("Agree")) {
        Login lgc = new Login();
         lgc.updateQ(numberS);
            String answer = "Согласовано";
  • Вопрос задан
  • 148 просмотров
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 1
@WaterSmith
Android-разработчик. Java, Kotlin
Вы
System.out.println(numberS);  // тут значение еще верное
выводите в цикле, а
System.out.println(numberS);   // тут уже приходит последнее значение в массиве.
вообще в другом методе.
numberS это у вас, судя по всему, атрибут класса, иначе она не была бы вам видна в методе onUpdateReceived
И чему же вы удивляетесь? У вас в методе send, при каждой итерации цикла меняется значение numberS, следовательно после последней итерации там последнее значение.
Как решить вашу задачу правильно, к сожалению не могу подсказать, потому что вы не описали задачу, и по коду тоже сложно понять что он должен был делать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
05 янв. 2025, в 07:48
2000 руб./за проект
05 янв. 2025, в 06:24
15000 руб./за проект
05 янв. 2025, в 06:22
15000 руб./за проект