2016-05-15 64 views
0

我目前有一个允许用户选择日期的应用程序。当用户选择我的编辑文本框时,它会显示一个日历,当他们选择一个日期时,它会显示在编辑文本字段中。我想要做的是在选择特定日期或选择日期之间更改我的文本视图中的文本。日历之间的Android日历

这里是我的问题

目前我编辑文本只选择一个日期并显示其,但不做任何处理的信息。

我想要一个textview更改为关闭,当用户选择任何日期之间每年6月5日至6月30日按下按钮,其余的时间说开放。我将如何去添加这个日历功能到我的应用程序?

我的当前设置

我的日期对话框

public class DateDialog extends DialogFragment implements DatePickerDialog.OnDateSetListener { 


EditText txtDate; 

public DateDialog(View view){ 

    txtDate = (EditText)view; 




} 

@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); 

} 

@Override 
public void onDateSet(DatePicker view, int year, int month, int day) { 

    String date=day+"-"+(month+1)+"-"+year; 
    txtDate.setText(date); 

} 
} 

//允许用户选择那里停留在葡萄园

 txtDate.setOnClickListener(new View.OnClickListener() 

    { 
     @Override 
     public void onClick (View v){ 

      InputMethodManager im = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); 
      im.hideSoftInputFromWindow(txtDate.getWindowToken(), 0); 


      DateDialog dialog = new DateDialog(v); 
      FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction(); 
      dialog.show(ft, "DatePicker"); 


      im.hideSoftInputFromWindow(txtDate.getWindowToken(), 0); 

     } 
    }); 

任何帮助或指导的日期关于这个问题将不胜感激。

回答

0

你可以使用

String date=(month+1)+day; 
int dateInt=Integer.parseValue(date); 
if(dateInt<=0630 && dateInt>=0605) 
    //Close 
else 
    //Open 

,我使用

下面是我通常用它来创建一个DatePickerDialog和日期设置为我的片段的TextView的代码的方法。在你的TextView的onClickListener使用此:

DatePickerDialog dialog = new DatePickerDialog(getActivity().getContext(), new DatePickerDialog.OnDateSetListener() { 
        @Override 
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
         String date=(monthOfYear+1)+dayOfMonth; 
         txtDate.setText(dayOfMonth+"/"+(monthOfYear+1)+"/"+year); 
         int dateInt = Integer.parseValue(date); 
         if(dateInt<=0630 && dateInt>=0605) 
          //Close 
         else 
          //Open 

        } 
       },2016,05, 15); 
       dialog.show(); 
+0

谢谢你的答案,我有一个快速的问题,我目前有两大类设置一个日期对话框,另一个是我的片段,你可以看到txtDate onclicklistener。如果你明白我的意思,我想把你的代码包含在和我的txtdate相同的类中,而不是在日期对话框中。 – Hadleigh

+0

我不确定这是否可行,但你应该试试看:String date =(dialog.getDatePicker()。getMonth()+ 1)+ dialog.getDatePicker()。getDayOfMonth(); –

+0

可悲的是我无法让它工作,但它值得一试:D推荐任何新的方式,我可以解决我的情况,即使它意味着从头开始。 – Hadleigh