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

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

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

函数式编程 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贡献1874条经验 获得超12个赞

为什么你要发射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
  • 1 回答
  • 0 关注
  • 75 浏览

添加回答

举报

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