Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Freddy Hardest
0 / 0 / 0
Регистрация: 16.01.2015
Сообщений: 43
#1

Почему в Android циклы for, while выводят последнее значение в TextView? - Программирование Android

16.01.2015, 14:33. Просмотров 784. Ответов 8
Метки нет (Все метки)

я хочу выводить значения i в textview через секунду
Java
1
2
3
4
5
while (i<5) {
i++;
textview1.setText(i);
Thread.sleep(1000);
}
а оно выводит только "4" через 4 секунды
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2015, 14:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему в Android циклы for, while выводят последнее значение в TextView? (Программирование Android):

Разметка TextView Java Android - Программирование Android
приветы. ситуация такая: имеется листвью, в нем нное количество итемов. в этих итемах один TextView. так вот, мне нужно...

TextView глючит на старых версиях Android и в теме Holo - Программирование Android
Написал программу на стандартной теме... Всё работает! Теперь решил поменять тему на Holo. Поменял и оказалось что на одном сотике у меня...

Как в Android Studio по нажатию кнопки выводить свой текст в TextView? - Программирование Android
Вот мой код MyActivity.java: package com.example.dasha; import android.app.Activity; import android.os.Bundle; import...

Как по нажатию кнопки несколько раз выводить текст в TextView в Android Studio? - Программирование Android
Помогите вывести текст в textview при нажатии на одну и ту же кнопку ? Нажал - изменился текст, опять нажал и тд

Подскажите почему не выводит данные в textview из sqlite - Программирование Android
У меня есть две активности helper и helperRec На первой есть глобальная переменная public static String namerec, в нее при вводе данных в...

Почему не передается последнее значение из datagridview в массив? - C#
Добрый вечер. Подскажите пожалуйста почему не передается последнее значение из datagridview В массив? dgw = new string; for...

8
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,653
Завершенные тесты: 1
16.01.2015, 14:45 #2
Freddy Hardest, потому что вы усыпляете UI поток. Сначала пишется 1, засыпает на секунду, потом 2, опять засыпает и т.д.. Во время работы UI потока он не обновляет промежуточные данные на View элементах - только конечное. Нужно запускать этот цикл в отдельном потоке - тогда отработает как нужно.
0
Freddy Hardest
0 / 0 / 0
Регистрация: 16.01.2015
Сообщений: 43
17.01.2015, 13:23  [ТС] #3
спасибо за наводку, с трудом, но нашел пример на английском, который мне нужен был
0
JarGivrin
0 / 0 / 0
Регистрация: 17.05.2015
Сообщений: 1
17.05.2015, 00:48 #4
Freddy Hardest, можете дать ссылку на этот пример?
0
Freddy Hardest
0 / 0 / 0
Регистрация: 16.01.2015
Сообщений: 43
17.05.2015, 22:30  [ТС] #5
это давным-давно было, ссылка у меня не сохранилась. но вы можете легко найти через поисковик по ключевому слову Thread
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
18.05.2015, 08:34 #6
Spelcrawler,
Во время работы UI потока он не обновляет промежуточные данные на View элементах
это выявлено экспериментально или следует из какой то логики работы java?
0
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,653
Завершенные тесты: 1
18.05.2015, 09:27 #7
Valakin, и то и другое. Да даже логически подумать, программа выполняет код от первой строчки до последней, происходит это быстро в любом случае не успеть заметить каких то изменений. А пока поток спит программа вообще "зависает".
1
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
18.05.2015, 10:16 #8
программа ведь зависает после выполнения textview1.setText(i);
и в течении секунды (можно сделать и больше) не видно изменений экрана
ощущение что обновление экрана идет в отдельном потоке, но не выполняется на "засыпании"
0
Pablito
2506 / 1990 / 620
Регистрация: 12.05.2014
Сообщений: 6,953
Завершенные тесты: 1
18.05.2015, 10:20 #9
Цитата Сообщение от Freddy Hardest Посмотреть сообщение
я хочу выводить значения i в textview через секунду
у андроида для подобных ситуаций есть Timer, AsyncTask, CountDownTimer....Handler наконец
0
18.05.2015, 10:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2015, 10:20
Привет! Вот еще темы с ответами:

Циклы while.do и repeat.until: выводят на экран заданный набор символов - Free Pascal
Написать две программы, которые выводят на экран заданный набор символов. Одна программа должна использовать только цикл while…do, а...

Почему не работает цикл (выводится только последнее значение)? - PHP
Почему выводит последнее значение а не массив? $data_arr = array(); $result = mysql_query(&quot;SELECT * FROM `news` &quot;); for...

Почему если во вторую и третью строку, вводить сперва символы а потом числа. То atoi, atof выводят "0" - C++
#pragma hdstop #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #define eof 26 #define max 1000 #include &lt;stdlib.h&gt; getline(char s, int...

Вывести значение в TextView - Программирование Android
Приветствую. Решил побаловаться с Android, - написать строковый калькулятор. Написал на xml форму: &lt;?xml version=&quot;1.0&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru