为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

函数式编程 2022-09-21 21:43:03

我正在创建一个时间跟踪应用程序,并希望有一个可以启动/暂停/重置的秒表。当我按下“结束日期并保存”按钮时,我希望应用程序在下面的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);


    }


}


}


查看完整描述

1 回答

?
HUWWW

TA贡献1543条经验 获得超11个赞

为什么你要发射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);


  }

}

这可以在您的活动的方法中完成:onCreate


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


查看完整回答
反对 回复 2022-09-21

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信