Вот как мой моментпик смотрит на данный момент. Я хочу, чтобы он показывал только минуты и минуты только до максимума 30. Он отлично работает, но когда u вводит время с клавиатуры, оно устанавливает время на 0, но я хочу, чтобы он достиг максимума. поэтому, если пользователь вводит 50, он должен перейти к 30, как я могу это сделать? и как я могу скрыть час времени, потому что он здесь не нужен.TimePicker показывает только минуты и устанавливает максимальные минуты, если пользователь вводит время с клавиатуры.
protected void onCreate(Bundle savedInstanceState) {
System.out.println("Powernap");
super.onCreate(savedInstanceState);
setContentView(R.layout.powernap);
TimePicker pn = (TimePicker) findViewById(R.id.tp_powernap);
pn.setOnTimeChangedListener(StartTimeChangedListener);
pn.setIs24HourView(true);
}
private TimePicker.OnTimeChangedListener StartTimeChangedListener =
new TimePicker.OnTimeChangedListener() {
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
updateDisplay(view, hourOfDay, minute);
}
};
private TimePicker.OnTimeChangedListener NullTimeChangedListener =
new TimePicker.OnTimeChangedListener() {
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
}
};
private void updateDisplay(TimePicker timePicker, int hourOfDay, int minute) {
// do calculation of next time
int nextMinute = 0;
int nextHour = 0;
if (minute > 30){
System.out.println("Minute+30");
nextMinute = 30;
// set minute
timePicker.setCurrentMinute(nextMinute);
}
else {
System.out.println("minute 0");
nextMinute = 0;
}
if (hourOfDay != 0){
System.out.println("hour>0");
nextHour = 24;
}
// remove ontimechangedlistener to prevent stackoverflow/infinite loop
timePicker.setOnTimeChangedListener(NullTimeChangedListener);
// set minute
timePicker.setCurrentMinute(timePicker.getCurrentMinute()+nextMinute);
//set hour
timePicker.setCurrentHour(nextHour);
// hook up ontimechangedlistener again
timePicker.setOnTimeChangedListener(StartTimeChangedListener);
}
только для того, чтобы скрыть час, а также отобразить только минуты до 30. Еще одна вещь, которую я хочу сделать, - показать только 5,10,15,20,25 и 30 минут с помощью кнопки вверх и вниз. Я только нашел решение, чтобы сделать это с вверх или вниз, а другой не работает. – kirbby
@kirbby: Мой ответ по-прежнему стоит: вам придется написать свой собственный виджет. – CommonsWare
ok Я получил вещь с минимальными значениями от 5 до 30 с шагом 5 минут, не написал новый;), и я думаю, что я проигнорирую часть часа и пусть это там, потому что пользователь не может войти в sth там. – kirbby