2016-08-07 69 views
0

Ich versuche, die Zeit zu erhalten, wenn der Benutzer auf die EditText StartTime und EndTime klickt. Das Problem ist, dass ich nicht weiß, wie man die EditText s bei TimePickerFragment unterscheidet. Irgendwelche Hilfe, bitte?Android: Wie stelle ich die Zeit von der Zeitauswahl in zwei verschiedenen EditText-Feldern ein (Start/Ende)?

public void initializeTime() { 
    startTimeEditText = (EditText) findViewById(R.id.startTimeEditText); 
    startTimeEditText.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // Initialize a new time picker dialog fragment 
      DialogFragment dFragment = new TimePickerFragment(); 
      // Show the time picker dialog fragment 
      dFragment.show(getSupportFragmentManager(),"TimePicker"); 
     } 
    }); 

    endTimeEditText = (EditText) findViewById(R.id.endTimeEditText); 
    endTimeEditText.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // Initialize a new time picker dialog fragment 
      DialogFragment dFragment = new TimePickerFragment(); 

      // Show the time picker dialog fragment 
      dFragment.show(getSupportFragmentManager(),"TimePicker"); 
     } 
    }); 
} 

TimePickerFragment.java:

@Override 
public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
    // Do something with the time chosen by the user 
    EditText startTimeEditText = (EditText) getActivity().findViewById(R.id.startTimeEditText); 
    EditText endTimeEditText = (EditText) getActivity().findViewById(R.id.endTimeEditText); 
    flag = getArguments().getString("Flag"); 
    Log.v(TAG,flag); 

    Toast.makeText(getActivity(), "Toast"+flag, Toast.LENGTH_LONG).show(); 


    if (startTimeEditText.isActivated()){ 
     startTimeEditText.setText(String.valueOf(hourOfDay) + ":" + String.valueOf(minute)); 
    } 
    else if (endTimeEditText.isActivated()){ 
     endTimeEditText.setText(String.valueOf(hourOfDay) + ":" + String.valueOf(minute)); 
    } 
} 

Antwort

0

TimePickerFragment sollte nicht verwirren mit dem Layout der Rest des Activity: der beste Weg, hier ist ein Hörer zum TimePickerFragment passieren. Werfen Sie einen Blick auf TimePicker.setOnTimeChangedListener(...), ich weiß, es ist kein Fragment, aber die Idee ist die gleiche.

Eine andere Lösung besteht darin, einen Event-Bus zu verwenden (z. B. die EventBus library) und ein neues Ereignis zu posten, wenn der Benutzer ein Datum auswählt: Auf diese Weise kann jede Komponente Ihrer App dieses Ereignis abonnieren und entsprechend handeln.