更改TimePicker上的标题?

9

我正在寻找一种改变TimePicker对话框标题的解决方案。目前它显示的是系统时间(例如,“12:23 AM”),但我想将其更改为更具描述性的内容。请问有什么建议吗?


3
你所说的TimePicker dialog是指实际的TimePickerDialog吗?因为它有一个setTitle(CharSequence text)方法。 TimePickerDialog是官方教程中使用的内容。http://developer.android.com/reference/android/app/AlertDialog.html#setTitle(java.lang.CharSequence) - 可能应该将其作为答案放置,但是无论如何。 - Codemonkey
哦,Klaus,你真是个救命恩人。那个方法完美地解决了我的问题!我还担心我得创建一个自定义的TimePicker之类的东西……你可以回答一下,我会标记为已解决。我不知道我怎么没发现这个,我真的很累……非常感谢! :) - Sunandmoon
实际上,它在初始化时间选择器时设置标题,但是一旦我更改值,它就会重置回日期标题("12:23 AM")。我猜我可以每次更改值时设置标题,但我不知道如何操作。我认为我可以使用一个监听器? - Sunandmoon
啊,没看到你的下一个评论。你是通过编程还是XML添加的?两种都试试吧。否则,嗯——不确定最好的方法是什么。我一开始只看到3个可用的TimePickerDialog监听器,其中没有一个对你真正有帮助。我猜测每次从Google自己的代码更改值时都会再次调用setTitle或类似的方法。 - Codemonkey
是的 - 看这里:http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=core/java/android/app/TimePickerDialog.java;h=a04b9e94405b62b966382f3607342883d802d703;hb=HEAD 当接收到新的小时和分钟时,它会更新时间。您可以使用那里的源代码创建自己的对话框,替换TimerPickerDialog,并简单地省略自动更新部分。 - Codemonkey
3个回答

23

谢谢! :) - Sunandmoon
@Sunandmoon 你看到我上面的评论了吗?我认为这可能很困难,因为Android实现不断使用setTitle来接收新数据。 - Codemonkey

6
这个问题比较老,但如果你搜索这个问题,它会在Google结果中显示。所以,我想我会发表我的解决方案。 DatePicker有一个setCustomTitle(View view)方法,您可以定义自己的视图(例如带有自定义文本的TextView)用作标题。但是当更改值时,这个标题不会更新。

如果我只需要选择时间,而不关心日期呢? - IgorGanapolsky

2
我不知道如何回复问题下面的评论,所以我使用“答案”。 通过查看源代码:源代码 您可能会发现OnTimeChangedListener由TimePickerDialog实现。 为了避免在调整时间时更改标题,您可以从TimePickerDialog派生并覆盖public void onTimeChanged(TimePicker view,int hourOfDay,int minute);
注意,不要调用super版本,否则它会再次设置标题...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接