2017-07-19 1 views
1

Ich habe mehrere DatePicker in meiner App und ich versuche einzelne Methode, um den Datepicker für mehrere TextView setzen statt einen Datepicker zu jedem TextView setzen, scheint Datum Dialog korrekt angezeigt, aber die Änderung wird aktualisiert um nur den letzten Gegenstand. HierDatePickerDialog on EditText Klicken Sie auf Event

ist die Methode, die ich erstellt

public void Setdate(final EditText setdateEditview){ 

     setdateEditview.setInputType(InputType.TYPE_NULL); 
     setdateEditview.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       DatePickerDialog.show(); 
       Log.d ("ttt","herre we o"+setdateEditview); 
      } 


     }); 

     Calendar newCalendar = Calendar.getInstance(); 
     DatePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { 

      @RequiresApi(api = Build.VERSION_CODES.N) 
      public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
       Calendar newDate = Calendar.getInstance(); 
       newDate.set(year, monthOfYear, dayOfMonth); 
       Log.d ("ttt","herre we o"+setdateEditview); 
       setdateEditview.setText(dateFormatter.format(newDate.getTime())); 
      } 

     },newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH)); 

    } 

Ich bin durch diese oben Methode aufrufen ....

mCustomerDueDateEditText = (EditText) findViewById(R.id.edit_CustommerDueDate); 
mForecastedDueDateEditText = (EditText) findViewById(R.id.edit_ForcastedDueDate); 
Setdate(mCustomerDueDateEditText); 
Setdate(mForecastedDueDateEditText); 

Antwort

0

Ändern Sie die Methodensignatur wie diese, und Schleife durch sie, wenn Sie möchte aktualisieren.

public void Setdate(final EditText... setdateEditviewList){ 

       setdateEditview.setInputType(InputType.TYPE_NULL); 
       setdateEditview.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         DatePickerDialog.show(); 
         Log.d ("ttt","herre we o"+setdateEditview); 
        } 


       }); 

       Calendar newCalendar = Calendar.getInstance(); 
       DatePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { 

        @RequiresApi(api = Build.VERSION_CODES.N) 
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
         Calendar newDate = Calendar.getInstance(); 
         newDate.set(year, monthOfYear, dayOfMonth); 
         Log.d ("ttt","herre we o"+setdateEditview); 

       //loop through the EditText here 
       EditText et; 
       for(int = 0; i<setdateEditviewList.length; i++){ 
          et = setdateEditviewList[i]; 
          et.setText(dateFormatter.format(newDate.getTime())); 

      } 
        } 

       },newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH)); 

      } 

Aufruf der Methode wie folgt:

mCustomerDueDateEditText = (EditText) findViewById(R.id.edit_CustommerDueDate); 
mForecastedDueDateEditText = (EditText) findViewById(R.id.edit_ForcastedDueDate); 
Setdate(mCustomerDueDateEditText, mForecastedDueDateEditText); 
+0

Dank Sehen Ausgabe von - >> für (EditText et: setdateEditviewList) .... es sagt "für" nicht mit ‚EditText laufen 'Type ... –

+0

Ich habe die Antwort bearbeitet, um normale for-Schleife zu verwenden –

Verwandte Themen