Time Selector dialog box… here is a solution to the problem.
Time Selector dialog box
I’m using multiple TextView with onclick listeners that direct me to the TimePicker dialog.
But after watching the tutorial, I don’t seem to know how to write code
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);
}
});
Show dialog box:
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case TIME_DIALOG_ID:
return new TimePickerDialog(this,
mTimeSetListener, mHour, mMinute, true);
}
return null;
}
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, how should I write code for a textview that calls the time selector after the TimePickerDialog.OnTimeSetListener callback?
The answer is simple, but I lack OOP knowledge and am still learning.
Thanks….
Solution
You need to use global variables. For example, 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="";
}
};