不能似乎将计时码表转换为整数

问题描述

我正在尝试将天文钟转换为秒,但似乎无法将其转换为整数。 我需要花点时间进行新的活动。

不可转换的类型;无法将“ 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);