Java 似乎不能把计时器调到整数
我正试图将计时器转换为秒,但似乎无法将其转换为整数。 因为我需要在一个新的活动上投入时间 不可逆类型;无法将“android.widget.Chronometer”强制转换为“int”Java 似乎不能把计时器调到整数,java,android-studio,chronometer,Java,Android Studio,Chronometer,我正试图将计时器转换为秒,但似乎无法将其转换为整数。 因为我需要在一个新的活动上投入时间 不可逆类型;无法将“android.widget.Chronometer”强制转换为“int” private Chronometer chronometer; private boolean ChronometerRunnin; private long pauseOffset; @Override protected void onCreate(Bundle sav
private Chronometer chronometer;
private boolean ChronometerRunnin;
private long pauseOffset;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ButterKnife.bind(this);
chronometer = findViewById(R.id.chronometerT);
chronometer.setFormat("Timer: %s");
buttonStats = findViewById(R.id.btRun);
buttonStats.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openStatsPage();
}
});
}
public void openStatsPage(){
Intent intent = new Intent(this, StatsPage.class);
int elapsedMillis = (int) chronometer /1000;
float timerdata = Integer.valueOf(chronometer.getText().toString());
intent.putExtra("timedata",timerdata);
startActivity(intent);
}
不能将计时器类型强制转换为int,需要调用
getBase()
方法
尝试像这样更改openStatsPage方法
int elapsedTimeInSec = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000);
Intent intent = new Intent(this, StatsPage.class);
intent.putExtra("timedata", elapsedTimeInSec);
startActivity(intent);
如果计时器中的字符串格式为“Timer:00:03”,则它是一个NumberFormatException,您不能将此字符串转换为整数。此外,您也不能声明float timerdata=integer.valueOf(..),因为timerdata需要一个float,但integer.valueOf返回一个整数。