@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 = "Согласовано";
  • Вопрос задан
  • 138 просмотров
Пригласить эксперта
Ответы на вопрос 1
@WaterSmith
Android-разработчик. Java, Kotlin
Вы
System.out.println(numberS);  // тут значение еще верное
выводите в цикле, а
System.out.println(numberS);   // тут уже приходит последнее значение в массиве.
вообще в другом методе.
numberS это у вас, судя по всему, атрибут класса, иначе она не была бы вам видна в методе onUpdateReceived
И чему же вы удивляетесь? У вас в методе send, при каждой итерации цикла меняется значение numberS, следовательно после последней итерации там последнее значение.
Как решить вашу задачу правильно, к сожалению не могу подсказать, потому что вы не описали задачу, и по коду тоже сложно понять что он должен был делать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
26 апр. 2024, в 10:21
1200 руб./в час
26 апр. 2024, в 10:10
1000 руб./за проект