設定アクティビティにタイムピッカーが必要です。次のようになります。
次に、ユーザーが「時間」をクリックすると、次のダイアログが表示されます。
これはまさに私が欲しかったものです。ただし、次の点に注意してください。
ダイアログは、XML によって参照されるカスタム ダイアログです。
<TimePicker android:id="@+id/timePicker1" android:layout_width="wrap_content" android:layout_height="wrap_content" />
私の設定 XML
<CheckBoxPreference android:title="Checkbox" android:summary="Checkbox"/> <EditTextPreference android:summary="time" android:dialogTitle="Hello" android:dialogLayout="@layout/preflayout" />
私のJavaコード:
public static class TestSettings extends PreferenceActivity implement TimePicker.OnTimeChangedListener {
TimePicker tp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.pref); tp = (TimePicker) findViewById(R.id.timePicker1); } @Override public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { if(view.getId() == R.id.timePicker1) { Log.i("STATIC", "hour "+hourOfDay+"minute "+minute); } } }
何らかの理由で、時間を設定しても OnTimeChangedListener が起動しません。これが設定画面でこのようにタイムピッカーをプログラムする正しいアプローチであるかどうかはわかりませんが、まさにそのようにする必要があります。とにかく、なぜ OnTimeChangedListener が機能しないのかわかりません。何か案は?
プリファレンスアクティビティでタイムピッカーをプログラムするには、別のアプローチを使用する必要があるのではないでしょうか?
提案が適用されます。ありがとう!