在textview中显示时间

时间:2017-07-10 09:52:19

标签: android

点击按钮时,我想要一个秒表,以便在文本视图中显示秒表的时间。我需要你的帮助

@Override
protected void onResume() {
    super.onResume();
    chronometer.setBase(SystemClock.elapsedRealtime() - timeMilliseconde);
    chronometer.start();
}

@Override
protected void onPause() {
    super.onPause();
    chronometer.stop();
    timeMilliseconde = SystemClock.elapsedRealtime() - chronometer.getBase();
    Toast.makeText(MainActivity.this, "Elapsed milliseconds: " + timeMilliseconde,
            Toast.LENGTH_SHORT).show();
}

2 个答案:

答案 0 :(得分:0)

您可以尝试将毫秒格式化为小时最小值和秒小时(00:00:00)

String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
                TimeUnit.MILLISECONDS.toMinutes(timeMilliseconde) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(timeMilliseconde)),
                TimeUnit.MILLISECONDS.toSeconds(timeMilliseconde) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(timeMilliseconde)));
        Log.d("Time ",hms);

答案 1 :(得分:0)

尝试这种方法。这对你有帮助。

public class Time extends Activity {
    Chronometer mChronometer;
    private SharedPreferences sharedPreferences;
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);

        sharedPreferences = getSharedPreferences(getString(R.string.app_name), MODE_PRIVATE);
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        mChronometer = new Chronometer(this);

        layout.addView(mChronometer);

        Button startButton = new Button(this);
        startButton.setText("Start");
        startButton.setOnClickListener(mStartListener);
        layout.addView(startButton);

        Button stopButton = new Button(this);
        stopButton.setText("Stop");
        stopButton.setOnClickListener(mStopListener);
        layout.addView(stopButton);

        Button resetButton = new Button(this);
        resetButton.setText("Reset");
        resetButton.setOnClickListener(mResetListener);
        layout.addView(resetButton);

        setContentView(layout);
    }

    private void showElapsedTime() {
        long elapsedMillis = SystemClock.elapsedRealtime() - mChronometer.getBase();
        Toast.makeText(MyActivity.this, "Elapsed milliseconds: " + elapsedMillis,
                Toast.LENGTH_SHORT).show();
    }

    View.OnClickListener mStartListener = new View.OnClickListener() {
        public void onClick(View v) {
            int stoppedMilliseconds = 0;

            String chronoText = mChronometer.getText().toString();
            String array[] = chronoText.split(":");
            if (array.length == 2) {
                stoppedMilliseconds = Integer.parseInt(array[0]) * 60 * 1000
                        + Integer.parseInt(array[1]) * 1000;
            } else if (array.length == 3) {
                stoppedMilliseconds = Integer.parseInt(array[0]) * 60 * 60 * 1000
                        + Integer.parseInt(array[1]) * 60 * 1000
                        + Integer.parseInt(array[2]) * 1000;
            }

            mChronometer.setBase(SystemClock.elapsedRealtime() - stoppedMilliseconds);
            mChronometer.start();
        }
    };

    View.OnClickListener mStopListener = new View.OnClickListener() {
        public void onClick(View v) {
            mChronometer.stop();
        }
    };

    View.OnClickListener mResetListener = new View.OnClickListener() {
        public void onClick(View v) {
            mChronometer.setBase(SystemClock.elapsedRealtime());
        }
    };

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        prepareSharedData();
    }

    @Override
    protected void onResume() {
        super.onResume();
        mChronometer.setText(sharedPreferences.getString("time", "00:00"));
    }

    @Override
    protected void onPause() {
        super.onPause();
        prepareSharedData();
    }

    public void prepareSharedData(){
        String chronoText = mChronometer.getText().toString();
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString("time", chronoText);
        editor.commit();
    }
}