2017-09-15 4 views
1

Je dois définir la date et la date à partir de la boîte de dialogue d'alerte. J'ai créé une nouvelle mise en page XML pour obtenir la valeur Date Time Picker. Cependant, je ne sais pas comment obtenir sa valeur différemment sur chaque Textview.Comment obtenir la valeur du sélecteur de date?

MainFragment extends Fragment implements 
     DatePickerDialog.OnDateSetListener, TimePickerDialog.OnTimeSetListener { 

    int day, month, year, hour, minute; 
    int dayFinal, monthFinal, yearFinal, hourFinal, minuteFinal; 
    String dayFinalString, monthFinalString, yearFinalString, hourFinalString, minuteFinalString; 

    TextView et2; 

    String dateFrom; 
    String Dates, time; 

    @Override 
    public void onDateSet(DatePicker datePicker, int i, int i1, int i2) { 
     yearFinal = i; 
     monthFinal = i1 + 1; 
     dayFinal = i2; 

     Calendar c = Calendar.getInstance(); 
     hour = c.get(Calendar.HOUR_OF_DAY); 
     minute = c.get(Calendar.MINUTE); 

     Dates = (monthFinal < 10 ? ("0" + monthFinal) : (monthFinal)) + "-" + (dayFinal < 10 ? ("0" + dayFinal) : (dayFinal)) + "-" + yearFinal ; 

     TimePickerDialog timePickerDialog = new TimePickerDialog(_context, this, hour, minute, DateFormat.is24HourFormat(_context)); 
     timePickerDialog.show(); 
    } 

    @Override 
    public void onTimeSet(TimePicker timePicker, int i, int i1) { 
     hourFinal = i; 
     minuteFinal = i1; 

     time = (hourFinal < 10 ? ("0" + hourFinal) : (hourFinal)) + ":" + (minuteFinal < 10 ? ("0" + minuteFinal) : (minuteFinal)); 



          //Here I want to set for example 
          et2.setText(Dates + " " + time + ":00"); 
          dateFromListFragment = et2.getText().toString(); 

          et3.setText(Dates + " " + time + ":00"); 
          dateFromListFragment = et3.getText().toString(); 


    } 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

     .... 

      @Override 
      public void onClick(View view) { 

       final Dialog dialog = new Dialog(getContext()); 

       dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
       dialog.setContentView(R.layout.date_time); 
       dialog.setCancelable(false); 

       ImageView close = (ImageView) dialog.findViewById(R.id.close); 
       close.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         dialog.dismiss(); 
        } 
       }); 

       et2 = (TextView) dialog.findViewById(R.id.editText2); 
       et2.setOnClickListener(new View.OnClickListener() { 
        public void onClick(View arg0) { 
         Calendar c = Calendar.getInstance(); 
         year = c.get(Calendar.YEAR); 
         month = c.get(Calendar.MONTH); 
         day = c.get(Calendar.DAY_OF_MONTH); 

         DatePickerDialog datePickerDialog = new DatePickerDialog(_context, SnailTrailTwoHrsFragment.this, year, month, day); 
         datePickerDialog.show(); 

        } 
       }); 

       final TextView et3 = (TextView) dialog.findViewById(R.id.editText3); 
       et3.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         Calendar c = Calendar.getInstance(); 
         year = c.get(Calendar.YEAR); 
         month = c.get(Calendar.MONTH); 
         day = c.get(Calendar.DAY_OF_MONTH); 

         DatePickerDialog datePickerDialog = new DatePickerDialog(_context, SnailTrailTwoHrsFragment.this, year, month, day); 
         datePickerDialog.show(); 

        } 
       }); 

} 

Et voici mon XML

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:layout_width="350dp" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:paddingBottom="30dp" 
     android:weightSum="1"> 

     <ImageView 
      android:id="@+id/close" 
      android:layout_width="35dp" 
      android:layout_height="35dp" 
      android:layout_alignParentRight="true" 
      android:layout_margin="5dp" 
      android:layout_marginBottom="15dp" 
      android:src="@drawable/close" 
      android:textSize="20dp" /> 

    <LinearLayout 
     android:id="@+id/linearLayout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:layout_alignParentEnd="false" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/close" 
     android:gravity="right" 
     android:paddingLeft="25dp" 
     android:paddingRight="0dp" > 

     <TextView 
      android:id="@+id/textView6" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Date From: "></TextView> 

     <TextView 
      android:id="@+id/editText2" 
      android:layout_width="250dp" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:paddingTop="25dp" 
      android:text="________________________________" 
      android:textAllCaps="true" 
      android:textColor="@color/colorBlack" /> 
    </LinearLayout> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="right" 
      android:orientation="horizontal" 
      android:paddingTop="10dp" 
      android:id="@+id/linearLayout3" 
      android:layout_below="@+id/linearLayout" 
      android:layout_marginBottom="25dp" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      android:paddingLeft="35dp" 
      android:paddingRight="0dp" > 

      <TextView 
       android:id="@+id/textView8" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Date To: " /> 

      <TextView 
       android:id="@+id/editText3" 
       android:layout_width="250dp" 
       android:layout_height="wrap_content" 
       android:ems="10" 
       android:paddingTop="25dp" 
       android:text="________________________________" 
       android:textAllCaps="true" 
       android:textColor="@color/colorBlack" /> 

     </LinearLayout> 

     <ImageView 
      android:id="@+id/button5" 
      android:layout_width="66dp" 
      android:layout_height="33dp" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true" 
      android:layout_marginBottom="135dp" 
      app:srcCompat="@drawable/next" 
      android:layout_below="@+id/linearLayout3" /> 

    </RelativeLayout> 

Je veux avoir l'ensemble DateTimePicker dans la boîte de dialogue quand je presse Date From TextView même avec Date To TextView.

Problème: Comment puis-je obtenir lorsque je presse le Date From TextView je ne peux pas obtenir la valeur provenant de la Date Time Picker et mis à Date From même avec Date To.

+0

Une façon de le faire serait, lorsque vous cliquez sur l'un des TextView, vous pouvez le qui à une initialisation TextView globale et dans les méthodes '' onDateSet' et onTimeSet' vous pouvez mettre à jour la valeur de cette TextView mondiale qui mettra à son tour à jour celui sur lequel vous avez cliqué. –

+0

"comment obtenir sa valeur différemment sur chaque TextView." vous voulez une valeur différente, pouvez-vous élaborer. –

+0

J'ai un problème pour obtenir la valeur 'Date Time Picker' et mettre cela sur' textview settext' – gokumijo2

Répondre

0
private boolean IsSelectBirthDate = false; 
DateFormat myDateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
public final int DATE_PICKER_BIRTHDAY_ID = 112; 
public final int DATE_PICKER_ANNIVERSARY_ID = 113; 
private int myYear; 
private int myMonth; 
private int myDay; 

myImageViewBirthdate.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       IsSelectBirthDate = true; 
       showDialog(DATE_PICKER_BIRTHDAY_ID); 
      } 
     }); 

     myImageViewAnniversary.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       IsSelectBirthDate = false; 
       showDialog(DATE_PICKER_ANNIVERSARY_ID); 
      } 
     }); 

      ///////////////////////////////////////// 

      @Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 
      case DATE_PICKER_BIRTHDAY_ID: { 
       Calendar c = Calendar.getInstance(); 
       int year = c.get(Calendar.YEAR); 
       int month = c.get(Calendar.MONTH); 
       int day = c.get(Calendar.DAY_OF_MONTH); 
       DatePickerDialog dialog1 = new DatePickerDialog(this, pickerListener, year, month, day); 
       dialog1.getDatePicker().setMaxDate(new Date().getTime()); 
       return dialog1; 

      } 
      case DATE_PICKER_ANNIVERSARY_ID: { 
       Calendar c = Calendar.getInstance(); 
       int year = c.get(Calendar.YEAR); 
       int month = c.get(Calendar.MONTH); 
       int day = c.get(Calendar.DAY_OF_MONTH); 
       DatePickerDialog dialog2 = new DatePickerDialog(this, pickerListener, year, month, day); 
       dialog2.getDatePicker().setMaxDate(new Date().getTime()); 
       return dialog2; 
      } 
     } 
     return null; 
    } 

    ///////////////////////////////////////// 
     private DatePickerDialog.OnDateSetListener pickerListener = new DatePickerDialog.OnDateSetListener() { 

     @Override 
     public void onDateSet(DatePicker view, int selectedYear, 
           int selectedMonth, int selectedDay) { 

      myYear = selectedYear; 
      myMonth = selectedMonth; 
      myDay = selectedDay; 

      Calendar cal = Calendar.getInstance(); 
      cal.set(Calendar.DAY_OF_MONTH, myDay); 
      cal.set(Calendar.MONTH, myMonth); 
      cal.set(Calendar.YEAR, myYear); 
      Date selectedDate = cal.getTime(); 

      String strSelectedDate = ""; 
      try { 
       strSelectedDate = myDateFormat.format(selectedDate); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      if (IsSelectBirthDate) { 
       myEditTextBirthDate.setText(strSelectedDate); 
      } else { 
       myEditTextAnniversary.setText(strSelectedDate); 
      } 

     } 
    }; 
+0

Qu'est-ce que c'est? Ce dont j'ai besoin, c'est quand je clique sur textview2 ou textview3, il obtiendra la valeur de son 'DateTimePicker' – gokumijo2

+0

avec ce code, lorsque vous cliquez sur n'importe quel textview que le datapicker ouvrira, sur selction de date. la date définie sur textview –