Android实现TextView时间求和并显示的代码方案
Android 时间选择与求和实现方案
实现需求:
- 两个TextView分别对应两个时间选择按钮,点击按钮弹出时间选择器,选择后时间显示在对应TextView中
- 点击Sum按钮,将两个TextView中的时间相加,结果显示在第三个TextView里
修改后的MainActivity.java代码
package com.example.myapplication_lab4; import androidx.appcompat.app.AppCompatActivity; import android.app.TimePickerDialog; import android.content.Intent; import android.os.Bundle; import android.text.format.DateUtils; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.TimePicker; import java.util.Calendar; public class MainActivity extends AppCompatActivity { TextView viewTime1; TextView viewTime2; TextView sum; Button time1; Button time2; Button btnSum; // 为两个时间分别创建Calendar实例 Calendar dateTime1 = Calendar.getInstance(); Calendar dateTime2 = Calendar.getInstance(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewTime1 = findViewById(R.id.viewTime1); viewTime2 = findViewById(R.id.viewTime2); sum = findViewById(R.id.sum); time1 = findViewById(R.id.time1); time2 = findViewById(R.id.time2); btnSum = findViewById(R.id.btnSum); } // 弹出时间选择窗口设置TextView1的时间 public void setTime(View v) { new TimePickerDialog(MainActivity.this, t, dateTime1.get(Calendar.HOUR_OF_DAY), dateTime1.get(Calendar.MINUTE), true) .show(); } // 弹出时间选择窗口设置TextView2的时间 public void setTime2(View v) { new TimePickerDialog(MainActivity.this, t2, dateTime2.get(Calendar.HOUR_OF_DAY), dateTime2.get(Calendar.MINUTE), true) .show(); } // 设置TextView1的初始时间显示 private void setInitialDateTime() { viewTime1.setText(DateUtils.formatDateTime(this, dateTime1.getTimeInMillis(), DateUtils.FORMAT_SHOW_TIME)); } // 设置TextView2的初始时间显示 private void setInitialDateTime2() { viewTime2.setText(DateUtils.formatDateTime(this, dateTime2.getTimeInMillis(), DateUtils.FORMAT_SHOW_TIME)); } // TextView1的时间选择监听器 TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener() { public void onTimeSet(TimePicker view, int hourOfDay, int minute) { dateTime1.set(Calendar.HOUR_OF_DAY, hourOfDay); dateTime1.set(Calendar.MINUTE, minute); setInitialDateTime(); } }; // TextView2的时间选择监听器 TimePickerDialog.OnTimeSetListener t2 = new TimePickerDialog.OnTimeSetListener() { public void onTimeSet(TimePicker view, int hourOfDay, int minute) { dateTime2.set(Calendar.HOUR_OF_DAY, hourOfDay); dateTime2.set(Calendar.MINUTE, minute); setInitialDateTime2(); } }; // 跳转至第二个Activity(无关逻辑保留) public void onClick(View view) { if (view.getId() == R.id.btnActTwo) { Intent intent = new Intent(this, Activity2.class); startActivity(intent); } } // 时间求和并显示的逻辑实现 public void onClick2(View view) { // 计算两个时间的总分钟数 int totalMinutes1 = dateTime1.get(Calendar.HOUR_OF_DAY) * 60 + dateTime1.get(Calendar.MINUTE); int totalMinutes2 = dateTime2.get(Calendar.HOUR_OF_DAY) * 60 + dateTime2.get(Calendar.MINUTE); int totalMinutes = totalMinutes1 + totalMinutes2; // 转换为小时和分钟 int hours = totalMinutes / 60; int minutes = totalMinutes % 60; // 格式化显示结果 sum.setText(String.format("%02d:%02d", hours, minutes)); } }
对应布局XML代码
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="This is First Activity" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Go to Second Activity" android:id="@+id/btnActTwo" android:onClick="onClick"> </Button> <TextView android:id="@+id/viewTime1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Time1" /> <Button android:id="@+id/time1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Choose Time 1" android:onClick="setTime"/> <TextView android:id="@+id/viewTime2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Time2" /> <Button android:id="@+id/time2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Choose Time 2" android:onClick="setTime2" /> <TextView android:id="@+id/sum" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Sum" /> <Button android:id="@+id/btnSum" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="SUM" android:onClick="onClick2"/> </LinearLayout>
内容的提问来源于stack exchange,提问作者k.pa
相关产品推荐
相关产品推荐

