Set Textview To Time From Timepicker - Android
I have been using this tutorial here to create a time picker. I can select the time fine, but I can't get the time selected to show up in my TextView. Java is not my preferred la
Solution 1:
you can do it like that:
1) Solution 1 (better):
publicclassMainActivityextendsActivity {
TextView resultText;
@OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resultText = (TextView)findViewById(R.id./*YOUR TEXT VIEW ID*/);
}
//code from: http://developer.android.com/guide/topics/ui/controls/pickers.htmlpublicvoidshowTimePicker(View v) {
DialogFragmentnewFragment=newTimePickerFragment(resultText);
newFragment.show(getFragmentManager(), "timePicker");
}
publicclassTimePickerFragmentextendsDialogFragmentimplementsTimePickerDialog.OnTimeSetListener {
TextView mResultText;
publicTimePickerFragment(TextView textView) {
mResultText = textView;
}
@Overridepublic Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current time as the default values for the pickerfinalCalendarc= Calendar.getInstance();
inthour= c.get(Calendar.HOUR_OF_DAY);
intminute= c.get(Calendar.MINUTE);
// Create a new instance of TimePickerDialog and return itreturnnewTimePickerDialog(getActivity(), this, hour, minute,
DateFormat.is24HourFormat(getActivity()));
}
publicvoidonTimeSet(TimePicker view, int hourOfDay, int minute) {
Stringtime=/*CONVERT YOUR TIME FROM hourOfDay and minute*/;
mResultText.setText(time);
}
}
}
2) Solution 2:
publicclassMainActivityextendsActivity {
public TextView mResultText;
@OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mResultText = (TextView)findViewById(R.id./*YOUR TEXT VIEW ID*/);
}
//code from: http://developer.android.com/guide/topics/ui/controls/pickers.htmlpublicvoidshowTimePicker(View v) {
DialogFragmentnewFragment=newTimePickerFragment();
newFragment.show(getFragmentManager(), "timePicker");
}
publicclassTimePickerFragmentextendsDialogFragmentimplementsTimePickerDialog.OnTimeSetListener {
@Overridepublic Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current time as the default values for the pickerfinalCalendarc= Calendar.getInstance();
inthour= c.get(Calendar.HOUR_OF_DAY);
intminute= c.get(Calendar.MINUTE);
// Create a new instance of TimePickerDialog and return itreturnnewTimePickerDialog(getActivity(), this, hour, minute,
DateFormat.is24HourFormat(getActivity()));
}
publicvoidonTimeSet(TimePicker view, int hourOfDay, int minute) {
Stringtime=/*CONVERT YOUR TIME FROM hourOfDay and minute*/;
mResultText.setText(time);
}
}
}
Solution 2:
You can actually use findViewById
, as with getActivity()
your fragment gets access to the activity it is running in and thus to the views inside the activity.
publicvoidonTimeSet(TimePicker view, int hourOfDay, int minute) {
TextViewtextView= (TextView) getActivity().findViewById(R.id.my_text_view);
textView.setText(String.format("%02d", hourOfDay), String.format("%02d", minute);
}
This simple solution should be preferred over passing a reference to the TextView
to the fragment, as this reference will be lost on reinstantiation of the fragment (see comment).
Post a Comment for "Set Textview To Time From Timepicker - Android"