要实现从底部弹出时间选择框,可以使用 DatePickerDialog 和 TimePickerDialog。以下是一个简单的示例代码:\n\njava\nimport android.app.DatePickerDialog;\nimport android.app.TimePickerDialog;\nimport android.os.Bundle;\nimport android.view.View;\nimport android.widget.DatePicker;\nimport android.widget.TextView;\nimport android.widget.TimePicker;\n\nimport androidx.appcompat.app.AppCompatActivity;\n\nimport java.util.Calendar;\n\npublic class MainActivity extends AppCompatActivity {\n\n private TextView textView;\n private Calendar calendar;\n\n @Override\n protected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n setContentView(R.layout.activity_main);\n\n textView = findViewById(R.id.textView);\n calendar = Calendar.getInstance();\n\n textView.setOnClickListener(new View.OnClickListener() {\n @Override\n public void onClick(View v) {\n showDateTimePicker();\n }\n });\n }\n\n private void showDateTimePicker() {\n int year = calendar.get(Calendar.YEAR);\n int month = calendar.get(Calendar.MONTH);\n int day = calendar.get(Calendar.DAY_OF_MONTH);\n int hour = calendar.get(Calendar.HOUR_OF_DAY);\n int minute = calendar.get(Calendar.MINUTE);\n\n DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {\n @Override\n public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {\n TimePickerDialog timePickerDialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {\n @Override\n public void onTimeSet(TimePicker view, int hourOfDay, int minute) {\n calendar.set(Calendar.YEAR, year);\n calendar.set(Calendar.MONTH, month);\n calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);\n calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);\n calendar.set(Calendar.MINUTE, minute);\n\n updateDateTime();\n }\n }, hour, minute, true);\n\n timePickerDialog.show();\n }\n }, year, month, day);\n\n datePickerDialog.show();\n }\n\n private void updateDateTime() {\n // 格式化日期时间\n String dateTime = android.text.format.DateFormat.format("yyyy-MM-dd HH:mm", calendar).toString();\n textView.setText(dateTime);\n }\n}\n\n\n在布局文件(activity_main.xml)中,需要一个TextView来显示选中的日期时间:\n\nxml\n<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"\n xmlns:tools="http://schemas.android.com/tools"\n android:layout_width="match_parent"\n android:layout_height="match_parent"\n android:orientation="vertical"\n android:gravity="center">\n\n <TextView\n android:id="@+id/textView"\n android:layout_width="wrap_content"\n android:layout_height="wrap_content"\n android:textSize="24sp"\n android:padding="16dp"\n android:clickable="true"\n android:focusable="true"\n android:focusableInTouchMode="true"\n android:text="Click to select date and time"\n tools:ignore="OnClick" />\n\n</LinearLayout>\n\n\n当点击TextView时,会弹出日期选择器,选择日期后再弹出时间选择器,选择时间后会将选中的日期时间显示在TextView中。


原文地址: https://www.cveoy.top/t/topic/qqlD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录