要在Android的时间选择器中只显示15分钟的间隔,你可以自定义一个时间选择器,然后设置间隔为15分钟。以下是一个示例代码:
首先,在你的布局文件中,添加一个按钮来触发时间选择器:
然后,在你的活动或片段中,添加以下代码:
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TimePicker;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.DialogFragment;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
private Button btnSelectTime;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnSelectTime = findViewById(R.id.btn_select_time);
btnSelectTime.setOnClickListener(v -> {
TimePickerFragment timePickerFragment = new TimePickerFragment();
timePickerFragment.show(getSupportFragmentManager(), "timePicker");
});
}
public static class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener {
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// 获取当前时间
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
// 创建一个时间选择器对话框,并设置监听器
return new TimePickerDialog(getActivity(), this, hour, minute, true);
}
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// 处理选择的时间
// 只显示15分钟的间隔
minute = (minute / 15) * 15;
// 在这里可以将时间返回给活动或片段中的其他组件
// 例如:((MainActivity) getActivity()).setSelectedTime(hourOfDay, minute);
}
}
}
在上面的代码中,我们创建了一个自定义的TimePickerFragment
类,继承自DialogFragment
。在onCreateDialog
方法中,我们创建了一个时间选择器对话框,并设置了监听器为当前类。在onTimeSet
方法中,我们处理用户选择的时间,将分钟部分限制为15分钟的倍数。
你可以根据自己的需求,将选择的时间返回给活动或片段中的其他组件进行进一步处理。