我想在偏好活动中有时间选择器。它看起来像这样:
然后如果用户点击“时间”,它会弹出这个对话框:
这正是我想要的。但是有几点需要注意:
Dialog 是 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代码:
公共静态类 TestSettings 扩展 PreferenceActivity 实现 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 不起作用。有任何想法吗?
也许我需要在偏好活动中使用另一种方法来编程时间选择器?
提出建议。谢谢!