要实现从底部弹出时间选择框,可以使用DatePickerDialog和TimePickerDialog。以下是一个简单的示例代码:

import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;

import androidx.appcompat.app.AppCompatActivity;

import java.util.Calendar;

public class MainActivity extends AppCompatActivity {

    private TextView textView;
    private Calendar calendar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = findViewById(R.id.textView);
        calendar = Calendar.getInstance();

        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showDateTimePicker();
            }
        });
    }

    private void showDateTimePicker() {
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);

        DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                TimePickerDialog timePickerDialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                        calendar.set(Calendar.YEAR, year);
                        calendar.set(Calendar.MONTH, month);
                        calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                        calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                        calendar.set(Calendar.MINUTE, minute);

                        updateDateTime();
                    }
                }, hour, minute, true);

                timePickerDialog.show();
            }
        }, year, month, day);

        datePickerDialog.show();
    }

    private void updateDateTime() {
        // 格式化日期时间
        String dateTime = android.text.format.DateFormat.format("yyyy-MM-dd HH:mm", calendar).toString();
        textView.setText(dateTime);
    }
}

在布局文件(activity_main.xml)中,需要一个TextView来显示选中的日期时间:

<LinearLayout 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:orientation="vertical"
    android:gravity="center">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:padding="16dp"
        android:clickable="true"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:text="Click to select date and time"
        tools:ignore="OnClick" />

</LinearLayout>

当点击TextView时,会弹出日期选择器,选择日期后再弹出时间选择器,选择时间后会将选中的日期时间显示在TextView中

Androidstudio当点击TextView时从底部弹出一个时间选择框可上下滑动选择年月日的选择好点击确定按钮后显示在TextView中java代码怎么编写

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

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