Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>If you are talking about Listeners, like <code>OnClickListener</code>, then yes: You can create your own listeners and trigger them. </p> <p>Basically you start by defining an interface for that Listener. For a DaterTimePicker (which has a DaterPicker and TimerPicker) widget I once used</p> <pre><code> public interface OnDateTimeSetListener { public abstract void onDateTimeSet(DatePicker datePicker, TimePicker timePicker); } </code></pre> <p>The interface defines a single Method which has to be implemented by your listeners. </p> <p>Then in your class you do something like</p> <pre><code>public class DateTimePickerDialog extends AlertDialog { private OnDateTimeSetListener onDateTimeSetListener; private DatePicker datePicker; private TimePicker timePicker; public void setOnDateTimeListener(OnDateTimeSetListener l) { this.onDateTimeSetListener = l; } private onDateTimeSet() { if(onDateTimeSetListener!=null) onDateTimeSetListener.onDateTimeSet(this.datePicker, this.timePicker); } private doSomething() { // Do your code here // fire up the event once finished onDateTimeSet(); } } </code></pre> <p><code>setOnDateTimeListener()</code> is used to set listeners from <strong>outside of the class</strong> (i.e. in your main activity).</p> <p><code>onDateTimeSet</code> is used internally (hence declared private) to fire the event and to check if <code>onDateTimeSetListener</code> was set or else we'd get a <code>NullPointerException</code> if it wasn't set. If it was set, call it's <code>onDateTimeSet</code> method. </p> <p>And in your main <code>Activity</code> you simply add an listener to it and add the code you need, like:</p> <pre><code>DateTimePicker dateTimePicker = (DateTimePicker)findViewById(R.id.datetime); dateTimePicker.setOnDateTimeListener(new OnDateTimeSetListener () { void onDateTimeSet(DatePicker datePicker, TimePicker timePicker) { // Date/Time was changed Log.d("OnDateTimeSet", "Date/time was updated"); } }); </code></pre> <p>Here you set up the listener the same way you'd set up an <code>OnClickListener</code>.</p> <p>It's quite a bit of code for a you have to do for a simple event, but as far as I know it's the right way to implement this.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload