2016-05-15 101 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