2014-01-07 135 views
0

我已经喜欢下方延伸片段创建一个片段片段时显示的EditText日期:如何使用

public class MyFragement extends Fragment 
{ 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) 
{ 

View view = inflater.inflate(R.layout.my_fragment_layout, container, false); 


return view; 

} 

我的布局有一个EditText上。当我点击edittext时,我想显示日期选择器。从日期选择器中选择日期后,所选日期应显示在编辑文本中。

我该如何实现这一目标。请帮助我一些示例代码。

+0

检查这个答案:http://stackoverflow.com/a/14933515/2065418 –

+0

哪里是你的日期选择器? – Raghunandan

回答

3

您可以的onCreate写片段类

yourEditText.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        //To show current date in the datepicker 
        Calendar mcurrentDate=Calendar.getInstance(); 
        mYear=mcurrentDate.get(Calendar.YEAR); 
        mMonth=mcurrentDate.get(Calendar.MONTH); 
        mDay=mcurrentDate.get(Calendar.DAY_OF_MONTH); 

        DatePickerDialog mDatePicker=new DatePickerDialog(**YourActivityName**.this, new OnDateSetListener() {     
         public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) { 
          // TODO Auto-generated method stub      
          /*  Your code to get date and time */ 
         } 
        },mYear, mMonth, mDay); 
        mDatePicker.getDatePicker().setCalendarViewShown(false); 
        mDatePicker.setTitle("Select date");     
        mDatePicker.show(); } 
      }); 
+1

这工作..谢谢兄弟 –

+0

这工作。非常感谢你。但在日期选取器对话框中,它显示日期选取器和日历。请帮助我如何只显示日期选择器而不是日历。 – user3021918

+0

mDatePicker.getDatePicker()。setCalendarViewShown(false); 在DatePickerDialog的对象声明下面添加此行。 请标记答案,如果它帮助你。谢谢 – Shahzeb

0

尝试以下方式验证码:

onCreatView()之前

/** Callback received when the user "picks" a departure date in the dialog **/ 
    private DatePickerDialog.OnDateSetListener pDateSetListener = 
      new DatePickerDialog.OnDateSetListener() { 

       public void onDateSet(DatePicker view, int year, 
             int monthOfYear, int dayOfMonth) { 
        pYear = year; 
        pMonth = monthOfYear; 
        pDay = dayOfMonth; 
        updateDisplay();     
       } 
      }; 

/** Updates the date in the departure date **/ 
    private void updateDisplay() { 
     dep_date.setText(
      new StringBuilder() 
        // Month is 0 based so add 1 
        .append(padDate(pDay)).append("/") 
        .append(padDate(pMonth + 1)).append("/")      
        .append(pYear).append(" ")); 

    } 

内onCreateView()

EditText dep_date= (EditText) view.findViewById(R.id.editText1); 

    /** Listener for click event of the departure date edit text **/ 
     dep_date.setOnTouchListener(new OnTouchListener() 
     { 

      @Override 
      public boolean onTouch(View arg0, MotionEvent arg1) { 
       // TODO Auto-generated method stub 
       showDialog(DATE_DIALOG_ID); 
       return false; 
      } 
     }); 

外onCreateView()

/** Create a new dialog for date picker */ 
@Override 
protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case DATE_DIALOG_ID: 
     return new DatePickerDialog(this, pDateSetListener, pYear, pMonth, pDay); 

    } 
    return null; 
}