如何用H:MM:SS显示天文台表?我读MM:SS和H:MM:SS默认显示.我发现只有MM:SS.
这是我的MM代码:带开始和停止按钮的SS.
public class MainActivity extends AppCompatActivity {
Button start,stop;
Chronometer chrono;
long time;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
start = (Button) findViewById(R.id.start);
stop = (Button) findViewById(R.id.stop);
chrono = (Chronometer) findViewById(R.id.chronometer);
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
chrono.setBase(SystemClock.elapsedRealtime());
chrono.start();
}
});
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
chrono.stop();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的MainActivity的xml代码:
<Chronometer
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/chronometer"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start"
android:id="@+id/start"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stop"
android:id="@+id/stop"
android:layout_below="@+id/start"
android:layout_centerHorizontal="true" />
Run Code Online (Sandbox Code Playgroud)
sus*_*dlh 12
带H:MM:SS的天文台表
使用setOnChronometerTickListener将时间分为分钟,小时和秒.
用这个 ......
Chronometer chrono = (Chronometer) findViewById(R.id.chronomete);
chrono.setOnChronometerTickListener(new OnChronometerTickListener(){
@Override
public void onChronometerTick(Chronometer chronometer) {
long time = SystemClock.elapsedRealtime() - chronometer.getBase();
int h = (int)(time /3600000);
int m = (int)(time - h*3600000)/60000;
int s= (int)(time - h*3600000- m*60000)/1000 ;
String t = (h < 10 ? "0"+h: h)+":"+(m < 10 ? "0"+m: m)+":"+ (s < 10 ? "0"+s: s);
chronometer.setText(t);
}
});
chrono.setBase(SystemClock.elapsedRealtime());
chrono.setText("00:00:00");
Run Code Online (Sandbox Code Playgroud)
编辑
开始
全局声明一个长变量timeWhenStopped.它保持时间.
private long timeWhenStopped = 0;
Run Code Online (Sandbox Code Playgroud)
启动监听器... 获取时间,然后从那里开始.
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
chrono.setBase(SystemClock.elapsedRealtime() + timeWhenStopped);
chrono.start();
}
});
Run Code Online (Sandbox Code Playgroud)
停止监听.... 存储时间和停止时间.
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
timeWhenStopped = chrono.getBase() - SystemClock.elapsedRealtime();
chrono.stop();
}
});
Run Code Online (Sandbox Code Playgroud)
喜欢编码............
| 归档时间: |
|
| 查看次数: |
3627 次 |
| 最近记录: |