I have run into a problem where my app is properly building and buttons are working as expect, but the text field I am editing with two time picker fragments is being edited by both the start time picker and end time picker.
public class MainActivity extends AppCompatActivity implements TimePickerDialog.OnTimeSetListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button_start = (Button) findViewById(R.id.start_picker_button);
button_start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment timePicker1 = new TimePickerStartFragment();
timePicker1.show(getSupportFragmentManager(),"time picker start");
}
});
Button button_end = (Button) findViewById(R.id.end_picker_button);
button_end.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment timePicker2 = new TimePickerEndFragment();
timePicker2.show(getSupportFragmentManager(),"time picker end");
}
});
}
@Override
public void onTimeSet(TimePicker TimePickerStartFragment, int hourOfDay, int minute) {
TextView textView = (TextView)findViewById(R.id.textView);
textView.setText("Hour: " + hourOfDay + " " + "Minute: " + minute);
My application looks like two buttons, one for a start time fragment and the other for an end time fragment. I have two seperate time picker fragment java files. However, when I set the end time fragment it still modifies the start time text. I want to have the start time picker only modify the start time text and the end time picker modify the end time text.
To further clarify when the select start time button is pressed TimePickerStratFragment is opened and a time is selected, this modifies a text field called textView. However when the time end button fragment is selected it also modifies the text view. I want the time end button to not modify the text view.
Add a String value to check which time picker is opened, because onTimeSet is fired for both fragments use something like this
String timeTag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button_start = (Button) findViewById(R.id.start_picker_button);
button_start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timeTag = "from";
DialogFragment timePicker1 = new TimePickerStartFragment();
timePicker1.show(getSupportFragmentManager(),"time picker start");
}
});
Button button_end = (Button) findViewById(R.id.end_picker_button);
button_end.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timeTag = "to";
DialogFragment timePicker2 = new TimePickerEndFragment();
timePicker2.show(getSupportFragmentManager(),"time picker end");
}
});
}
@Override
public void onTimeSet(TimePicker TimePickerStartFragment, int hourOfDay, int minute) {
if(Objects.equals(timeTag, "from")) {
TextView textView = (TextView)findViewById(R.id.textView);
textView.setText("Hour: " + hourOfDay + " " + "Minute: " + minute);
}
if(Objects.equals(timeTag, "to")) {
}
}