0 でアラームを鳴らすカウントダウン タイマーのようなものを実装しようとしています。この種の選択機能。
基本的に、AndroidにはiPhoneの選択スピンホイールのようなものがありますか? または、任意の時間数と分数を選択できるタイプのタイムピッカーはありますか? Android のタイムピッカー ウィジェットには、不要な AM/PM ラベルがあります。
これを実現するには、独自のカスタム UI を実装する必要がありますか?
0 でアラームを鳴らすカウントダウン タイマーのようなものを実装しようとしています。この種の選択機能。
基本的に、AndroidにはiPhoneの選択スピンホイールのようなものがありますか? または、任意の時間数と分数を選択できるタイプのタイムピッカーはありますか? Android のタイムピッカー ウィジェットには、不要な AM/PM ラベルがあります。
これを実現するには、独自のカスタム UI を実装する必要がありますか?
デフォルトの TimePickerDialog を使用し、onTimeChanged メソッドをオーバーライドして、タイトルを自分で更新できます。
public class DurationPickerDialog extends TimePickerDialog {
public DurationPickerDialog(Context context, int theme,
OnTimeSetListener callBack, int hour, int minute) {
super(context, theme, callBack, hour, minute, true);
updateTitle(hour, minute);
}
public DurationPickerDialog(Context context, OnTimeSetListener callBack,
int hour, int minute) {
super(context, callBack, hour, minute, true);
updateTitle(hour, minute);
}
@Override
public void onTimeChanged(TimePicker view, int hour, int minute) {
super.onTimeChanged(view, hour, minute);
updateTitle(hour, minute);
}
public void updateTitle(int hour, int minute) {
setTitle("Duration: " + hour + ":" + formatNumber(minute));
}
private String formatNumber(int number) {
String result = "";
if (number < 10) {
result += "0";
}
result += number;
return result;
}
}
はい、一緒にハックできます。API の変更により、このコードの寿命が短くなる可能性は十分にあります。
int foo = 7;
Object o = findViewById(ids[i]);
Class<? extends Object> c = o.getClass();
Method m = c.getMethod("setCurrent", int.class);
m.invoke(o, foo);
String[] displayedValues = new String[] { "$00", "$01", "$02", "$03", "$04",
"$05", "$06", "$07", "$08", "$09", "$10", "$11",
"$12", "$13", "$14", "$15", "$16", "$17", "$18", "$19", "$20", "$21",
"$22", "$23", "$24", "$25"};
Method m = c.getMethod("setRange", int.class, int.class, String[].class);
M.invoke(o, 0, 25, displayedValues);
次に、これらのいくつかをレイアウトにドロップします。
<com.android.internal.widget.NumberPicker
android:id="@+id/picker1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true" />
setCurrent set はピッカーのインデックスで、foo の場合は "$07" の値を意味します。setRange は、ピッカーに表示する値を設定します。
幸運を。