Android 台灣中文網

標題: 要怎麼使 timer搭配一個int 數字累加 [打印本頁]

作者: wind8894    時間: 2012-3-3 00:06
標題: 要怎麼使 timer搭配一個int 數字累加
本帖最後由 wind8894 於 2012-3-3 00:07 編輯

程式是這樣子的,2個textview,一個用來做timer時間累加,然後一個textview做一個int數字累加

每增加一秒就數字+1

例如:1秒  1   ,   2秒     2............等

加入幾串程式碼後,timer就無法繼續累加了,想請問要怎麼使int數字做累加,程式碼要怎修改呢?


程式碼:

  1. package wwss.sss.namespace;

  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.os.Handler;
  5. import android.widget.TextView;

  6. import android.view.View;



  7. public class Timer1 extends Activity {
  8.     /** Called when the activity is first created. */
  9.         private Long startTime;
  10.         private Handler handler = new Handler();
  11.        
  12.         private TextView tv;
  13.         int i=0;
  14.        
  15.        
  16.     @Override
  17.     public void onCreate(Bundle savedInstanceState) {
  18.         super.onCreate(savedInstanceState);
  19.         setContentView(R.layout.main);
  20.       
  21.         startTime = System.currentTimeMillis();

  22.         handler.removeCallbacks(updateTimer);
  23.    
  24.         handler.postDelayed(updateTimer, 1000);
  25.         
  26.         tv=(TextView)findViewById(R.id.textView2);
  27.     }
  28.    
  29.     private Runnable updateTimer = new Runnable()
  30.     {
  31.                     public void run()
  32.                     {
  33.                         final TextView time = (TextView) findViewById(R.id.textView1);
  34.                         Long spentTime = System.currentTimeMillis() - startTime;
  35.                    
  36.                         Long minius = (spentTime/1000)/60;
  37.                 
  38.                         Long seconds = (spentTime/1000) % 60;
  39.                         time.setText(minius+":"+seconds);
  40.                         handler.postDelayed(this, 1000);
  41.                         
  42.                         i++;
  43.                         tv.setText(i);
  44.                 }
  45.                    
  46.    };
  47.   
  48. }
複製代碼

作者: george310909    時間: 2012-3-6 16:23
  1. package wwss.sss.namespace;

  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.os.Handler;
  5. import android.widget.TextView;

  6. public class TestActivity extends Activity {
  7.         private Long startTime;
  8.         private Handler handler = new Handler();
  9.         private TextView tv1,tv2;
  10.         private int i = 0;
  11.         @Override
  12.         public void onCreate(Bundle savedInstanceState) {
  13.                 super.onCreate(savedInstanceState);
  14.                 setContentView(R.layout.main);
  15.                 tv1 = (TextView) findViewById(R.id.textView1);
  16.                 tv2 = (TextView) findViewById(R.id.textView2);
  17.                 startTime = System.currentTimeMillis();
  18.                 handler.removeCallbacks(updateTimer);
  19.                 handler.postDelayed(updateTimer, 1000);
  20.                
  21.         }
  22.         private Runnable updateTimer = new Runnable() {
  23.                 public void run() {
  24.                         Long spentTime = System.currentTimeMillis() - startTime;
  25.                         Long minius = (spentTime / 1000) / 60;
  26.                         Long seconds = (spentTime / 1000) % 60;
  27.                         tv1.setText(minius + ":" + seconds);
  28.                         i++;
  29.                         tv2.setText("int的值"+String.valueOf(i));
  30.                         handler.postDelayed(this, 1000);
  31.                        
  32.                 }
  33.         };
  34. }
複製代碼
依你的程式碼去改的,雖然有些地方照自己的意思去改...
作者: wind8894    時間: 2012-3-6 23:34
感謝喔,終於可以跑了
tv.setText(i); 跟 tv2.setText("int的值"+String.valueOf(i));

原來是要加上String.valueOf 才可以
作者: cdgod    時間: 2012-3-17 11:04
用 tv.setText(""+i); 就可以了




歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1