I'm using multiple textviews with onclick listeners that direct me to a TimePicker Dialog.
However I cannot seem to know how to write the code after reading the tutorials,
textview1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
showDialog(TIME_DIALOG_ID);
}
});
textview2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
showDialog(TIME_DIALOG_ID);
}
});
To show the dialog:
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case TIME_DIALOG_ID:
return new TimePickerDialog(this,
mTimeSetListener, mHour, mMinute, true);
}
return null;
}
and finally,
private TimePickerDialog.OnTimeSetListener mTimeSetListener =
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(android.widget.TimePicker view,
int hourOfDay, int minute) {
mHour = hourOfDay;
mMinute = minute;
}
};
now, to .setText for the textview that CALLED the timepicker after the TimePickerDialog.OnTimeSetListener callback, how should I write the code?
The answer is very simple but I lack OOP knowledge and still learning. Thanks...
You need to use a global varible. say,String fromWhere="";
now,
textview1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
fromWhere="textview1";
showDialog(TIME_DIALOG_ID);
}
});
textview2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
fromWhere="textview2";
showDialog(TIME_DIALOG_ID);
}
});
...
private TimePickerDialog.OnTimeSetListener mTimeSetListener =
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(android.widget.TimePicker view,
int hourOfDay, int minute) {
if(fromWhere.equals(textview1))
// set hour and minute to according variable and textview
else if(fromWhere.equals(textview2))
// set hour and minute to according variable and textview
.. //so on for others
//mHour = hourOfDay;
//mMinute = minute;
fromWhere="";
}
};
create a member variable (say int whichViewClicked = 0) in your class to keep track of the textview clicked to bring-up the time-picker.
Now if you click textview1 set whichViewClicked = 1, if textview2 is clicked set whichViewClicked = 2 and so on. In the onTimeSet() method check the value of whichViewClicked and set the textview text accordingly
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With