我尝试将countdownTimer值从活动1传递到活动2,并从从活动1获得的值启动活动2中的倒计时计时器,但我不知道如何将活动2中计时器的起始点作为变量,以下是我的活动1代码
new CountDownTimer(20000, 1000) {
public void onTick(long millisUntilFinished) {
tv.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
tv.setText("done!");
}
}.start();
next.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent i = new Intent(MainActivity.this, Page2.class);
i.putExtra("timervalue", tv.getText());
startActivity(i);
}
});这是活动2中的代码
Bundle bundle = getIntent().getExtras();
long value = Long.parseLong(bundle.getString("timervalue"));
new CountDownTimer(value, 1000) {
public void onTick(long millisUntilFinished) {
tv.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
tv.setText("done!");
}
}.start(); 我也尝试通过使用Intet而不是Bundle来使activity 2像这样
Intent results = this.getIntent();
String s = results.getExtras().getString("timervalue");
long value = Long.parseLong(s);
new CountDownTimer(value, 1000) {
public void onTick(long millisUntilFinished) {
tv.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
tv.setText("done!");
}
}.start(); 我认为我的错误时,我有putExtra和getExtra,但我不确定,我真的在java的初学者,所以请任何帮助…谢谢阿洛特
发布于 2013-02-06 04:45:53
目前,您正在将"seconds remaining: "+...传递给下一个活动,并尝试将其解析为Long,这意味着您将在下一个活动中获得NumberFormatException。使用额外的变量将CountDownTimer重命名时间传递到下一个活动,如下所示:
public long long_remaingtime=20L;
new CountDownTimer(20000, 1000) {
public void onTick(long millisUntilFinished) {
tv.setText("seconds remaining: " + millisUntilFinished / 1000);
long_remaingtime=millisUntilFinished / 1000; //<<<
}
public void onFinish() {
tv.setText("done!");
long_remaingtime=20L; //<< set default here
}
}.start();
next.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent i = new Intent(MainActivity.this, Page2.class);
i.putExtra("timervalue", long_remaingtime);
startActivity(i);
}
});在下一个活动中,获取timervalue如下:
Intent results = this.getIntent();
long value = results.getExtras().getLong("timervalue");https://stackoverflow.com/questions/14716468
复制相似问题