使用天文台表 - 设置文本后,文本视图仅显示文本一秒钟

我正在创建一个时间跟踪应用程序,并希望有一个可以启动/暂停/重置的秒表。当我按下“结束日期并保存”按钮时,我希望应用程序在下面的TevtView中显示经过的小时/分钟/秒。它确实如此,但只有一秒钟,然后它就消失了。我哪里出错了?


我尝试创建一个仅用于更新 TextView 的新方法,但当时它根本不显示。如果有帮助,我必须用于此项目的最低SDK版本是23。


public void stopAndSaveChronometer(View v) {

    if (running) {

        chronometer.stop();

        running = false;

        time = SystemClock.elapsedRealtime() - chronometer.getBase();

        h = (int) (time / 3600000);

        m = (int) (time - h * 3600000) / 60000;

        s = (int) (time - h * 3600000 - m * 60000) / 1000;


        Intent secondsIntent = new Intent(this,

                trackTodayActivity.class).putExtra("saved seconds", s);


        startActivity(secondsIntent);


        Intent minsIntent = new Intent(this,

                trackTodayActivity.class).putExtra("saved mins", m);


        startActivity(minsIntent);


        Intent hoursIntent = new Intent(this,

                trackTodayActivity.class).putExtra("saved hours", h);


        startActivity(hoursIntent);


        Bundle extras = getIntent().getExtras();


       if (extras != null) {

            seconds = extras.getInt("saved seconds", s);

            minutes = extras.getInt("saved minutes", m);

            hours = extras.getInt("saved hours", h);


        }


        // set up Strings to hold the times (already initialised as global variables)


        printseconds = Integer.toString(s);

        printminutes = Integer.toString(m);

        printhours = Integer.toString(h);


        // set up String to display in TextView (already initialised as global variable)


        displayTheTime = (printhours + " hours, ")

                + (printminutes + " minutes, ")

                + (printseconds + " seconds");


        // display the times in the Textview


        showMyTime = (TextView) findViewById(R.id.printsavedTime);

        showMyTime.setText(displayTheTime);


    }


}


}


函数式编程
浏览 80回答 1
1回答

HUWWW

为什么你要发射3次?此活动有用吗?trackTodayActivity为了显示结果,这应该就足够了:public void stopAndSaveChronometer(View v) {  if (running) {    chronometer.stop();    running = false;    time = SystemClock.elapsedRealtime() - chronometer.getBase();    h = (int) (time / 3600000);    m = (int) (time - h * 3600000) / 60000;    s = (int) (time - h * 3600000 - m * 60000) / 1000;    displayTheTime = String.valueOf(h) + " hours, "            + String.valueOf(m) + " minutes, "            + String.valueOf(s) + " seconds";    // display the times in the Textview    showMyTime.setText(displayTheTime);  }}这可以在您的活动的方法中完成:onCreateshowMyTime = (TextView) findViewById(R.id.printsavedTime);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java