与DialopFragment显示日历还创建日期选择器 [英] Datepicker created with DialopFragment showing Calender also
问题描述
我是新来的Android编程和我使用的使用DialogFragment一个基本的日期选择器创建的。我的DatePicker显示了罚款,点击等等,但问题是,它是显示日历视图为好。我不想要这个。我一直在寻找了一天的解决方案,现在,我不愿意使用自定义Datepickers现在,我想熟悉的基础知识第一。
我也看到了建议,如
yourDatepicker.setCalendarViewShown(假);
或将其设置为在XML假的。但我的DatePicker来自DialogFragment,让我怎么访问此日期选择器?如何设置它的最终看法?我不希望在源$ C $ C变化,我仍然在学习的绳索。
我的日期选择器code:
公共类DueDatePickerFragment扩展DialogFragment实现DatePickerDialog.OnDateSetListener {
@覆盖
公共对话框onCreateDialog(捆绑savedInstanceState){
最后的日历C = Calendar.getInstance();
年整型= c.get(Calendar.YEAR);
INT月= c.get(的Calendar.MONTH);
INT天= c.get(Calendar.DAY_OF_MONTH);
返回新DatePickerDialog(getActivity(),这,年,月,日);
} 公共无效onDateSet(查看的DatePicker,年整型,诠释月,日整型){
// code到截止日期文本字段设置为选定的日期。
TextView的reminderText =(TextView中)getActivity()findViewById(R.id.addTaskFormDueDateHolder)。 字符串dueDateStr =年+ - +月+ - +天;
reminderText.setText(dueDateStr);
}
}
我已经使用日期选择器对话框片段,显示在对话框中的日期选择器。
下面是我完全code
MainActivity.java
包com.example.testmydrag;进口android.os.Bundle;
进口android.view.View;
进口android.widget.EditText;
进口android.widget.DatePicker;
进口android.support.v4.app.FragmentActivity;
进口android.app.Dialog;
进口android.app.DatePickerDialog;
进口android.support.v4.app.DialogFragment;进口的java.util.Calendar;公共类MainActivity扩展FragmentActivity {的EditText mEdit;
@覆盖
公共无效的onCreate(捆绑savedInstanceState){ super.onCreate(savedInstanceState);
的setContentView(R.layout.main);
} 公共无效selectDate(查看视图){ DialogFragment newFragment =新SelectDateFragment();
newFragment.show(getSupportFragmentManager(),的DatePicker); } 公共无效setTheDate(INT年,月整型,诠释天){ mEdit =(EditText上)findViewById(R.id.Text);
mEdit.setText(月+/+日+/+年);
}
/ *
*日期选取器对话框
* /
公共类SelectDateFragment扩展DialogFragment实现DatePickerDialog.OnDateSetListener {
@覆盖
公共对话框onCreateDialog(捆绑savedInstanceState){ 最后的日历C = Calendar.getInstance();
INT YY = c.get(Calendar.YEAR);
INT毫米= c.get(的Calendar.MONTH);
INT DD = c.get(Calendar.DAY_OF_MONTH); DatePickerDialog对话框=新DatePickerDialog(getActivity(),这一点,c.YEAR,c.MONTH,c.DATE); / *日历视图,如果你想删除其设置为false * /
dialog.getDatePicker()setCalendarViewShown(真)。 / *微调查看,如果你想显示其设置为true * /
dialog.getDatePicker()setSpinnersShown(假)。 dialog.setTitle(选择一个日期);
返回对话框;
}
公共无效onDateSet(查看的DatePicker,诠释YY,INT毫米,诠释DD){ setTheDate(YY的MM + 1,DD);
}
}}
main.xml中
<?XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:方向=垂直
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
>
<机器人的EditText:文本=@ +串/ DATE_TEXT
机器人:ID =@ + ID /文本
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT/>
<按钮
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:文字=@ +串/ pick_date
安卓的onClick =selectDate/>< / LinearLayout中>
I am new to Android programming and I am using a basic Datepicker created using a DialogFragment. My DatePicker shows up fine on click etc., but the problem is that it is displaying the Calendar view as well. I do not want this. I have been searching for a solution for a day now, and I am unwilling to use custom Datepickers right now, as I want to get familiar with the basics first.
I have also read suggestions such as
yourDatepicker.setCalendarViewShown(false);
or set it to false in the XML. But my DatePicker comes from a DialogFragment, so how do I access this datepicker? How do I set its final view? I do not wish to make changes in the source code as I am still learning the ropes.
My datepicker code:
public class DueDatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day){
// Code to set Due Date TextField to the selected date.
TextView reminderText = (TextView)getActivity().findViewById(R.id.addTaskFormDueDateHolder);
String dueDateStr = year + "-" + month + "-" + day;
reminderText.setText(dueDateStr);
}
}
I have used Datepicker Dialog Fragment, to show the Date picker in dialog.
Here is my Complete Code
MainActivity.java
package com.example.testmydrag;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.DatePicker;
import android.support.v4.app.FragmentActivity;
import android.app.Dialog;
import android.app.DatePickerDialog;
import android.support.v4.app.DialogFragment;
import java.util.Calendar;
public class MainActivity extends FragmentActivity {
EditText mEdit;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void selectDate(View view) {
DialogFragment newFragment = new SelectDateFragment();
newFragment.show(getSupportFragmentManager(), "DatePicker");
}
public void setTheDate(int year, int month, int day) {
mEdit = (EditText)findViewById(R.id.Text);
mEdit.setText(month+"/"+day+"/"+year);
}
/*
* Date Picker Dialog
*/
public class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar c = Calendar.getInstance();
int yy = c.get(Calendar.YEAR);
int mm = c.get(Calendar.MONTH);
int dd = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dialog = new DatePickerDialog(getActivity(),this,c.YEAR, c.MONTH, c.DATE);
/*Calendar View if you want to Remove Set it to False*/
dialog.getDatePicker().setCalendarViewShown(true);
/*Spinner View if you want to Show Set it to True*/
dialog.getDatePicker().setSpinnersShown(false);
dialog.setTitle("Pick a date");
return dialog;
}
public void onDateSet(DatePicker view, int yy, int mm, int dd) {
setTheDate(yy, mm+1, dd);
}
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText android:text="@+string/date_text"
android:id="@+id/Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+string/pick_date"
android:onClick="selectDate" />
</LinearLayout>
这篇关于与DialopFragment显示日历还创建日期选择器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!