问题描述
我正在尝试将天文钟转换为秒,但似乎无法将其转换为整数。 我需要花点时间进行新的活动。
不可转换的类型;无法将“ android.widget.Chronometer”转换为“ int”
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);
}
解决方法
您无法将Chronometer类型转换为int,需要调用getBase()
方法。
尝试像这样更改您的openStatsPage方法
int elapsedTimeInSec = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000);
Intent intent = new Intent(this,StatsPage.class);
intent.putExtra("timedata",elapsedTimeInSec);
startActivity(intent);