2016-09-15 5 views
0

Ich versuche herauszufinden, wie das aktuell ausgewählte Datum auf dem CalendarDatePicker angezeigt wird. E.g. Wenn ich den 13. September 2016 als Datum ausgewählt habe, sollte es auf dem CalendarDatePicker angezeigt/hervorgehoben werden, dass ich dieses Datum ausgewählt habe. Also setze ich das Datum und zeige es in einer Textansicht an, und wenn ich das Datum aktualisiere, sollte das vorher ausgewählte Datum auf dem CalendarDatePicker hervorgehoben werden. Ich habe ihre onDayOfMonthSelected() Methode hinzugefügt, aber es funktioniert immer noch nicht. Das habe ich bisher. Ich benutze diese Bibliothek Android-BetterPicker von GitHub.Abrufen des vorherigen ausgewählten Datums auf CalendarDatePicker android

button2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       final CalendarDatePickerDialogFragment cdp2 = new CalendarDatePickerDialogFragment() 
         .setOnDateSetListener(CalendarPicker.this); 
       cdp2.show(getSupportFragmentManager(), FRAG_TAG_DATE_PICKER); 
       cdp2.setOnDateSetListener(new CalendarDatePickerDialogFragment.OnDateSetListener() { 

        @Override 
        public void onDateSet(CalendarDatePickerDialogFragment dialog, int year, int monthOfYear, int dayOfMonth) { 
         mResultTextView.setText(getString(R.string.calendar_date_picker_result_values, year, monthOfYear+1, dayOfMonth)); 
        } 
       }); 
      } 
}); 

Hier ist meine onResume() Funktion

public void onResume() { 
     // Example of reattaching to the fragment 
     super.onResume(); 
     CalendarDatePickerDialogFragment calendarDatePickerDialogFragment = (CalendarDatePickerDialogFragment) getSupportFragmentManager() 
       .findFragmentByTag(FRAG_TAG_DATE_PICKER); 
     if (calendarDatePickerDialogFragment != null) { 
      calendarDatePickerDialogFragment.onDayOfMonthSelected(CHOSEN_YEAR,CHOSEN_MONTH,CHOSEN_DAY); 
      calendarDatePickerDialogFragment.setOnDateSetListener(this); 
     } 
} 
+0

Haben Sie für diesen Dialog eine spezielle Bibliothek verwenden:

public void onResume() { // Example of reattaching to the fragment super.onResume(); CalendarDatePickerDialogFragment calendarDatePickerDialogFragment = (CalendarDatePickerDialogFragment) getSupportFragmentManager() .findFragmentByTag(FRAG_TAG_DATE_PICKER); if (calendarDatePickerDialogFragment != null) { calendarDatePickerDialogFragment.onDayOfMonthSelected(CHOSEN_YEAR,CHOSEN_MONTH,CHOSEN_DAY); calendarDatePickerDialogFragment.setOnDateSetListener(this); } } 

auch hier ändern?! –

+0

versuchen Sie mit diesem Code Dieser Code muss Ihnen helfen [Klicken Sie auf diesen Link können Sie Datenzeit mit Ihrem Weg verwenden, dies ist benutzerdefinierte Art von Datum und Uhrzeit] (http://stackoverflow.com/questions/5369682/get-current-time -und-Datum-auf-android/34328449 # 34328449) – Amitsharma

+0

Versuchen Sie mit diesem Link. [Klicken Sie hier, um mehr zu lesen] (http://stackoverflow.com/questions/5369682/get-current-time-and-date-on-android/34328449#34328449) – Amitsharma

Antwort

1

Sie haben eine Funktion für das, was Sie wollen:

button2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      final CalendarDatePickerDialogFragment cdp2 = new CalendarDatePickerDialogFragment() 
        .setOnDateSetListener(CalendarPicker.this); 


      cdp2.show(getSupportFragmentManager(), FRAG_TAG_DATE_PICKER); 

      //here 
      cdp2.onDayOfMonthSelected(CHOSEN_YEAR,CHOSEN_MONTH,CHOSEN_DAY); 

      cdp2.setOnDateSetListener(new CalendarDatePickerDialogFragment.OnDateSetListener() { 

       @Override 
       public void onDateSet(CalendarDatePickerDialogFragment dialog, int year, int monthOfYear, int dayOfMonth) { 
        mResultTextView.setText(getString(R.string.calendar_date_picker_result_values, year, monthOfYear+1, dayOfMonth)); 
       } 
      }); 
     } 
}); 
+0

Es funktioniert immer noch nicht. –

+0

Was genau möchten Sie tun? nur das letzte gewählte Datum bekommen? oder letztes Datum im Kalender markieren? @ Nube1Nu2 –

+0

bekommen das letzte gewählte Datum. Das zuletzt gewählte Datum sollte nun auf dem Kommissionierer ausgewählt werden, bevor ein anderes Datum ausgewählt wird. –

0

Sie können dies:

DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker1); 
int day = datePicker.getDayOfMonth(); 
int month = datePicker.getMonth() + 1; 
int year = datePicker.getYear(); 

Wenn Sie das aktuelle Datum auf Knopf selbst zeigen wollen, dann ist dies ein verwenden:

public static class DatePickerFragment extends DialogFragment 
      implements DatePickerDialog.OnDateSetListener { 

     MyDate mydate = new MyDate(); 

     @Override 
     public Dialog onCreateDialog(Bundle savedInstanceState) { 


      if (getArguments()!=null && getArguments().get("DATE") != null) { 
       mydate = (MyDate) getArguments().get("DATE"); 
      } 

      DatePickerDialog dpd = new DatePickerDialog(getActivity(), this, mydate.year, mydate.month, mydate.day); 

      dpd.getDatePicker().setCalendarViewShown(false); 
      dpd.setTitle("Set Date"); 
      return dpd; 
     } 

     public void onDateSet(DatePicker view, int year, int month, int day) { 
      mydate = new MyDate(day,month,year); 
      if (getTag().equals("birthdatePicker")){ 
       birthday.setText(mydate.toStringDate()); 
      } 
      else if (getTag().equals("annidatePicker")){ 
       anniversary.setText(mydate.toStringDate()); 
      } 
      else if (getTag().equals("spousedatePicker")){ 
       spousebday.setText(mydate.toStringDate()); 
      } 
     } 

     public String getDate(){ 
      return mydate.toString(); 
     } 
    } 

    static class MyDate implements Parcelable { 
     int day; 
     int month; 
     int year; 

     public MyDate() { 
      Calendar c = Calendar.getInstance(); 
      year = c.get(Calendar.YEAR)- 15; 
      month = c.get(Calendar.MONTH); 
      day = c.get(Calendar.DAY_OF_MONTH); 
     } 

     public MyDate(int day, int month, int year) { 
      this.day = day; 
      this.month = month; 
      this.year = year; 
     } 

     public String toString() { 
      return year + "-" + (month+1) + "-" + day; 
     } 

     public String toStringDate(){ 
      return day + "-" + (month+1) + "-" + year; 
     } 

     public static MyDate toDate(String date) { 
      String [] strArray = date.split("/"); 
      int d = Integer.parseInt(strArray[0]); 
      int m = Integer.parseInt(strArray[1])-1; 
      int y = Integer.parseInt(strArray[2]); 
      return new MyDate(d, m, y); 
     } 

     @Override 
     public int describeContents() { 
      return 0; 
     } 

     @Override 
     public void writeToParcel(Parcel dest, int flags) { 
      dest.writeInt(this.day); 
      dest.writeInt(this.month); 
      dest.writeInt(this.year); 
     } 

     protected MyDate(Parcel in) { 
      this.day = in.readInt(); 
      this.month = in.readInt(); 
      this.year = in.readInt(); 
     } 

     public static final Parcelable.Creator<MyDate> CREATOR = new Parcelable.Creator<MyDate>() { 
      @Override 
      public MyDate createFromParcel(Parcel source) { 
       return new MyDate(source); 
      } 

      @Override 
      public MyDate[] newArray(int size) { 
       return new MyDate[size]; 
      } 
     }; 
    } 


public void showBirthDateDialog() { 
    birthFragment.show(getFragmentManager(), "birthdatePicker"); 
} 


birthday.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      showBirthDateDialog(); 
     } 
    }); 

Ich denke, das wird helfen Deine Ursache!

Verwandte Themen