我想制作一个可以改变飞行模式的应用程序。我有一个时间选择器和一个日历。现在我想设置从 tp 到 cal 的时间。我做了 2 个 toast 来控制两个对象的时间。来自 tp 的 toast 向我显示了正确的时间(例如 13:04),但是日历对象在“设置”之后显示了错误的时间(11:12) 我读到时间是在调用 getTimeinMillis() 这样的方法时设置的,所以添加了这个方法,但它仍然不工作。感谢您的回答
Button b;
Button b2;
TimePicker tp;
Calendar cal;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b = (Button)(findViewById(R.id.button1));
tp = (TimePicker)(findViewById(R.id.timePicker1));
cal = Calendar.getInstance();
b2 = (Button)(findViewById(R.id.button2));
b.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0) {
Toast.makeText(getApplicationContext(),"TimePicker "+ tp.getCurrentHour()+":"+tp.getCurrentMinute(), Toast.LENGTH_LONG).show();
cal.set(Calendar.HOUR_OF_DAY,tp.getCurrentHour());
cal.set(Calendar.MINUTE,tp.getCurrentMinute());
cal.set(Calendar.SECOND,0);
cal.getTimeInMillis();
Toast.makeText(getApplicationContext(),"Calendar "+ cal.HOUR_OF_DAY+":"+cal.MINUTE, Toast.LENGTH_LONG).show();
}
});
最佳答案
您正确设置了字段,但您没有像那样查询日历的字段。您在那里所做的是在日历类上打印 HOUR_OF_DAY 字段的 int 值,该值的值为 11 ( See here )。
getTimeinMillis 方法将仅返回自纪元(格林威治标准时间 1970 年 1 月 1 日 00:00:00)以来的毫秒数。没有必要在那里。
使用:
Toast.makeText(getApplicationContext(),"Calendar "+ cal.get(Calendar.HOUR_OF_DAY) +":"+cal.get(Calendar.MINUTE), Toast.LENGTH_LONG).show();
关于android - 在日历中设置时间 (android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11121314/