安卓获取时间以时分秒格式更新时间并显示在UI上请给出完整示例。
以下是一个完整的示例代码,演示如何在安卓应用中获取时间并更新UI显示。
在MainActivity.java文件中:
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
private TextView timeTextView;
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timeTextView = findViewById(R.id.timeTextView);
handler = new Handler();
}
@Override
protected void onResume() {
super.onResume();
startUpdatingTime();
}
@Override
protected void onPause() {
super.onPause();
stopUpdatingTime();
}
private void startUpdatingTime() {
handler.post(timeRunnable);
}
private void stopUpdatingTime() {
handler.removeCallbacks(timeRunnable);
}
private Runnable timeRunnable = new Runnable() {
@Override
public void run() {
updateTime();
handler.postDelayed(this, 1000); // 每隔1秒更新一次时间
}
};
private void updateTime() {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss", Locale.getDefault());
String currentTime = sdf.format(new Date());
timeTextView.setText(currentTime);
}
}
在activity_main.xml布局文件中:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<TextView
android:id="@+id/timeTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:text="00:00:00" />
</RelativeLayout>
这个示例中,我们在MainActivity中创建了一个TextView组件来显示时间。在onResume()方法中启动了一个持续更新时间的线程,并在onPause()方法中停止线程。
在startUpdatingTime()方法中,我们使用Handler.post()方法来定期执行一个Runnable,该Runnable中调用了updateTime()方法来获取当前时间并更新UI显示。我们使用SimpleDateFormat来格式化时间,并将其设置为TextView的文本。
最后,我们使用Handler.postDelayed()方法将Runnable延迟1秒后再次执行,以实现每隔1秒更新一次时间的效果
原文地址: https://www.cveoy.top/t/topic/hYGR 著作权归作者所有。请勿转载和采集!