我想创建一个控件,允许用户选择一周中的某一天(星期一)和一天中的某一天(下午1:00)在我的Android活动。无法找到任何好帖子?Android中的星期几和时间选择器,用于定期事件
3
A
回答
1
好吧,我觉得我明白了。我只是不喜欢这个解决方案,因为我在一周中使用的Spinner与timepicker的“主题”不匹配,所以看起来非常糟糕。
编辑:我改变了微调的布局,你可以在帖子底部看到它,现在看起来好多了。
DayTimePickerFragment.java
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View thisDialog = inflater.inflate(R.layout.picker_day_time, container, false);
Button btnDateTimeOK = (Button)thisDialog.findViewById(R.id.btnDateTimeOK);
Button btnDateTimeCancel = (Button)thisDialog.findViewById(R.id.btnDateTimeCancel);
final Spinner spinSelectedDay = (Spinner)thisDialog.findViewById(R.id.spinSelectedDay);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), R.layout.spinner_item_day_picker, getResources().getStringArray(R.array.days_of_week));
spinSelectedDay.setAdapter(adapter);
final TimePicker tpSelectedTime = (TimePicker)thisDialog.findViewById(R.id.tpSelectedTime);
btnDateTimeCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ActionBarActivity thisActivity = (ActionBarActivity) getActivity();
getDialog().dismiss();
}
});
btnDateTimeOK.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ActionBarActivity thisActivity = (ActionBarActivity) getActivity();
String strTime = null, strDay = null, strHour = null, strMinute = null, strAM_PM = null;
strDay = ((String)spinSelectedDay.getSelectedItem());
strMinute = tpSelectedTime.getCurrentMinute().toString();
if (tpSelectedTime.getCurrentMinute() < 10){
strMinute = "0"+strMinute;
}
if (tpSelectedTime.getCurrentHour() > 12){
strHour = (tpSelectedTime.getCurrentHour() - 12)+"";
strAM_PM = "PM";
}else if(tpSelectedTime.getCurrentHour() == 12){
strHour = tpSelectedTime.getCurrentHour().toString();
strAM_PM = "PM";
}else if(tpSelectedTime.getCurrentHour() < 12){
strHour = tpSelectedTime.getCurrentHour().toString();
strAM_PM = "AM";
}
if (strHour != null && strAM_PM != null){
strTime = strHour + ":" + strMinute + " " + strAM_PM;
}
etTarget.setText(strDay + " " + strTime);
getDialog().dismiss();
}
});
return thisDialog;
}
picker_day_time.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical" >
<Spinner android:id="@+id/spinSelectedDay" android:layout_width="fill_parent" android:layout_height="wrap_content">
</Spinner>
<TimePicker android:id="@+id/tpSelectedTime"
android:layout_width="wrap_content" android:layout_height="wrap_content" >
</TimePicker>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<Button android:id="@+id/btnDateTimeCancel" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1"
android:text="@string/button_text_cancel" android:onClick="DateTimeClickCancel" />
<Button android:id="@+id/btnDateTimeOK" android:layout_width="0dip" android:layout_height="wrap_content"
android:layout_weight="1" android:text="@string/button_text_ok" android:onClick="DateTimeClickOK" />
</LinearLayout>
</LinearLayout>
spinner_item_day_picker.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:text="Thursday"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:textSize="@dimen/text_size_x_large" android:padding="10dp" android:gravity="center"/>
+3
你可以附上一张照片吗? – bubakazouba
2
你可以尝试使用像Android的betterpickers一些外部库。它,至少在我看来,一个伟大的设计:
2
我在一个对话框合并星期和时间选择的一天。
您可以检查出库here
首先创建一个监听器:
final SlideDayTimeListener listener = new SlideDayTimeListener() {
@Override
public void onDayTimeSet(int day, int hour, int minute)
{
// Do something with the day, hour and minute
// the user has selected.
}
@Override
public void onDayTimeCancel()
{
// The user has canceled the dialog.
// This override is optional.
}
};
然后使用生成器来显示对话框:
new SlideDayTimePicker.Builder(getSupportFragmentManager())
.setListener(listener)
.setInitialDay(1)
.setInitialHour(13)
.setInitialMinute(30)
.build()
.show();
希望你觉得它有用。
相关问题
- 1. 设置星期几从日期时间选择器中选择日期android
- 2. datepicker选定星期几android
- 3. 选择日期为星期几的行
- 4. 选择查询星期几
- 5. 选择查询星期几?
- 6. 选择星期几是今天的星期几
- 7. 星期数和星期几
- 8. 从sql中的给定日期时间提取时间和星期几
- 9. Android:获取选定日期中的星期几
- 10. 如何指定星期六为星期几作为时间
- 11. 存储时间和星期几
- 12. 日期选择器中的事件启动日期和闹钟时间
- 13. jQuery Datepicker:限制日期选择基于星期几
- 14. 从GPS星期数,星期几到日期时间转换
- 15. 获取两个选定日期之间的星期几
- 16. 选择日期这个星期一和这个星期五之间的日期
- 17. 添加一个星期到日期时间选择器
- 18. 通过外部按钮浏览jQuery日期选择器之间的星期几
- 19. 从日期选择器显示星期几
- 20. 日期和时间选择器插件jQueryMobile在Android模拟器
- 21. 开放时间 - DIV取决于星期几和小时
- 22. 日期时间选择器低于div
- 23. 在时间选择器和日期选择器中的错误
- 24. 获取一个星期几和时间的日期实例
- 25. 如何从星期几选择记录?
- 26. 使用引导日期选择器在日期之后显示星期几
- 27. 年,星期数和星期几在php
- 28. 使用NSDate计算基于通用星期几的时间
- 29. 日期时间选择器 - 设置开始日期和时间
- 30. 日期时间选择器
所以基本上你想要一个对话框,在同一对话框一个datepicker和TimePicker? –
像谷歌日历?当你选择日期和时间 –
不,我只需要一周中的某一天和一个时间,没有日期。 – Jarrette