Вопрос:

как обновлять переменную textview каждые 5 секунд

java android for-loop textview updates

7764 просмотра

5 ответа

37 Репутация автора

Возможное дублирование:
обновление TextView каждые N секунд?

Здесь я хочу обновить значение Hr в текстовом представлении, как только оно будет рассчитано для каждой итерации, но с задержкой в ​​2 секунды каждый раз. Я не знаю, как это сделать. То, что я теперь получаю в textview, является последним значением итерации. Я хочу, чтобы все значения отображались с постоянной задержкой. кто-нибудь помогите пожалуйста.

    for(int y=1;y<p.length;y++)
    {
       if(p[y]!=0)
        {
        r=p[y]-p[y-1];
          double x= r/500;
          Hr=(int) (60/x);
          Thread.sleep(2000);
         settext(string.valueof(Hr));
      }
    }
Автор: Pooja Источник Размещён: 23.01.2013 09:38

Ответы (5)


2 плюса

0 Репутация автора

Вы должны использовать класс таймера ....

Timer timer = new Timer();
        timer.schedule(new TimerTask() {

        public void run() {


        }, 900 * 1000, 900 * 1000);

Выше код для каждые 15 минут. Измените это значение и используйте в вашем случае .....

Автор: user1755441 Размещён: 23.01.2013 09:43

2 плюса

119365 Репутация автора

используйте Handlerили TimerTask(with runOnUiThread())вместо цикла for для обновления текста через каждые 5 секунд:

Handler handler=new Handler();  

handler.post(runnable);  
Runnable runnable=new Runnable(){  
  @Override  
    public void run() {  
      settext(string.valueof(Hr));  //<<< update textveiw here
      handler.postDelayed(runnable, 5000);  
     }  
 };  
Автор: ρяσѕρєя K Размещён: 23.01.2013 09:44

1 плюс

965 Репутация автора

TimerTask - это то, что вам нужно.

Автор: Alpay Размещён: 23.01.2013 09:46

4 плюса

1194 Репутация автора

public class MainActivity extends Activity{
protected static final long TIME_DELAY = 5000;
//the default update interval for your text, this is in your hand , just run this sample
TextView mTextView;
Handler handler=new Handler();  
int count =0;
@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mTextView=(TextView)findViewById(R.id.textview);
    handler.post(updateTextRunnable);
}


Runnable updateTextRunnable=new Runnable(){  
  public void run() {  
      count++;
      mTextView.setText("getting called " +count);
      handler.postDelayed(this, TIME_DELAY);  
     }  
 };  
}

Я надеялся, что на этот раз вы попадете в код и запустите его.

Автор: Vipin Sahu Размещён: 23.01.2013 09:53

0 плюса

4920 Репутация автора

будем надеяться, что это поможет вам

import java.awt.Toolkit;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class demo 
{
  Toolkit toolkit;
  Timer timer;
  public demo()
  {
    toolkit = Toolkit.getDefaultToolkit();
    timer = new Timer();
    timer.schedule(new scheduleDailyTask(), 0, //initial delay
        2 * 1000); //subsequent rate
  }
  class scheduleDailyTask extends TimerTask 
  {
    public void run() 
    {
      System.out.println("this thread runs for every two second");
      System.out.println("you can call this thread to start in your activity");
      System.out.println("I have used a main method to show demo");
      System.out.println("but you should set the text field values here to be updated simultaneouly");
    }
  }
  public static void main(String args[]) {
    new demo();
  }
}
Автор: Hussain Akhtar Wahid 'Ghouri' Размещён: 23.01.2013 10:20
Вопросы из категории :
32x32