如何将倒数计时器值传递给另一个活动

时间:2012-06-06 15:36:40

标签: android timer

我正在尝试制作一个Android应用程序,管理员将设置计时器倒计时,用户必须能够看到时间倒计时...我能够设置计时器,但我不知道如何将其传递给另一项活动......请帮助我的代码

public class Timer extends Activity  {
    public TextView mTextField;

    public String formatTime(long millis) { 
        String output = "00:00"; 
        long seconds = millis / 1000; 
        long minutes = seconds / 60; 

        seconds = seconds % 60; 
        minutes = minutes % 60; 

        String secondsD = String.valueOf(seconds); 
        String minutesD = String.valueOf(minutes); 

        if (seconds < 10) 
          secondsD = "0" + seconds; 
        if (minutes < 10) 
          minutesD = "0" + minutes; 

        output = minutesD + " : " + secondsD; 
        return output; 
      } 
    public CountDownTimer Counter1;

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
         super.onCreate(savedInstanceState); 
         setContentView(R.layout.main); 

//Declare Start/Stop button 
Button btnstart = (Button)findViewById(R.id.button01); 
Button btnstop = (Button)findViewById(R.id.button02); 
Button btnpass = (Button)findViewById(R.id.button03);

//Declare Text fields to show time left 
final TextView mCounter1TextField=(TextView)findViewById(R.id.textView01); 
final TextView mCounter2TextField = (TextView)findViewById(R.id.textView02); 
final TextView mCounter3TextField=(TextView)findViewById(R.id.textView03); 



//Counter 1 
 Counter1 = new CountDownTimer(120000 , 1000) { 
public void onTick(long millisUntilFinished) { 
    mCounter1TextField.setText("Seconds left: " + formatTime(millisUntilFinished)); 
} 

public void onFinish() { 
    mCounter1TextField.setText("Finished!"); 
   // Counter1.start();
} 
}; 

我需要接收计时器的活动

public class f extends Activity {
     public TextView tt;

      public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.dfsdfsd);

             Timer objtime = new Timer();


          TextView productTitleTextView = (TextView) findViewById(R.id.textViewtimer);

          productTitleTextView.setText("Left Time is : " + objtime.Counter1);


}


}

1 个答案:

答案 0 :(得分:2)

当你说管理员设定时间时,这是否发生在另一台设备上?

如果您想在同一设备的同一个应用中将信息从一个活动传递到另一个活动,您可以使用以下两项内容:

Activity.startActivityForResult(Intent intent,int requestCode)并在onActivityResult方法中获取结果。

或者你可以在调用活动中使用Extras:putExtra()以及在接收活动中使用getIntent()。getExtras()将任何来自一个Activity的信息传递给另一个Activity。

以下是一些可能符合您示例的代码: 确保在你的Timer.java类中,无论你传递给另一个f.java Activity都是全局声明的,而不仅仅是在formatTime中声明,这样你就可以实际传递它,我猜你何时按下btnpass按钮

如果我的上述假设是正确的,那么这段代码可能会进入btnpass的onClick()方法。

Intent timerIntent = new Intent(this, f.class); //sets your intent to call the f.java class
timerIntent.putExtra("result", output); //puts the String you want to pass
startActivity(timerIntent); //starts the f.java Activity

在f.java Activity中你会得到String输出,我猜这会在你的onCreate()方法中,如下所示:

String output = getIntent().getExtras().getString("result"); //gets the output string from your previous Activity