Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 似乎不能把计时器调到整数_Java_Android Studio_Chronometer - Fatal编程技术网

Java 似乎不能把计时器调到整数

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

我正试图将计时器转换为秒,但似乎无法将其转换为整数。 因为我需要在一个新的活动上投入时间

不可逆类型;无法将“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);
    }

不能将计时器类型强制转换为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返回一个整数。