Listeners in Android studio:
We use many type of Event listeners in android . Event Listening in
Android development is largely centered around the View object.
1. View Event Listeners
2. Adapter View Event Listeners
3. Edit-Text Common Listeners
4. Input View Listeners
View Event Listeners in Android :
Any View (Button, TextView, etc) has many event listeners that can be attached using the
setOnEvent pattern which involves passing a class that implements a particular event
interface. The listeners available to any View include:
1. setOnClickListener
2. setOnLongClickListener
3. setOnFocusChangeListener
4. setOnTouchListener
5. setOnMenuItemClickListener
6. setOnCreateContextMenuItemListener
7. setOnGenericMotionListener
8. setOnHoverListener
9. setOnKeyListener
10. setOnDragListener
 setOnClickListener :
Event Handler : onClick()
This is called when the user either clicks or touches or focuses upon any widget like button, text, image etc. You
will use onClick() event handler to handle such event.
 setOnClickLongListener :
Event Handler : onLongClick()
This is called when the user either clicks or touches or focuses upon any widget like button, text, image etc. for
one or more seconds. You will use onLongClick() event handler to handle such event.
 setOnFocusChangeListener :
Event Handler : onFocusChange()
This is called when the widget looses its focus ie. user goes away from the view item. You will use
onFocusChange() event handler to handle such event.
 setOnKeyChangeListener :
Event Handler : onKey()
This is called when the user is focused on the item and presses or releases a hardware key on the device. You will
use onKey() event handler to handle such event.
 setOnTouchListener :
Event Handler : onTouch()
This is called when the user presses the key, releases the key, or any movement gesture on the screen. You will
use onTouch() event handler to handle such event.
 setOnMenuItemClickListener :
Event Handler : onMenuItemClick()
This is called when the user selects a menu item. You will use onMenuItemClick() event handler to handle such
event.
 setOnCreateContextMenuItemListener :
Event Handler : onCreateContextMenu()
This is called when the context menu is being built(as the result of a sustained "long click).
 setOnGenericMotionListeners :
Event Handler : onGeenricMotion()
Interface definition for a callback to be invoked when a generic motion event is dispatched to this view. The
callback will be invoked before the generic motion event is given to the view.
 setOnHoverListener :
Event Handler : onHover()
Interface definition for a callback to be invoked when a hover event is dispatched to this view. The callback will be
invoked before the hover event is given to the view.
 setOnDragLisener :
Event Handler : onDrag()
Callback when the view is dragged
NOTE : In java code all events work in same way. First you need a reference to the view
and then you need to use the set method associated with that listener and pass in a class
implementing a particular interface.
Syntax Example : This pattern works for any of the view-based event listener.
Button btnExample = (Button) findViewById(R.id.btnExample);
btnExample.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Do something here
}
});
Adapter View Event Listeners in android :
In addition to the standard View listeners, AdapterView descendants have a few more
key event listeners having to do with their items:
1. setOnItemClickListener
2. setOnItemLongClickListener
3. setOnItemSelectedListener
 setOnItemClickListener :
Event Handler : onItemClick()
Callback when an item contained is clicked
 setOnItemLongClickListener :
Event Handler : onItemLongClick()
Callback when an item contained is clicked and held.
Syntax Example : This works similarly for the setting up a "long click" where an item is pressed and held down
using the OnItemLongClickListener.
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Do something here
// The position is the index of the item pressed
// If the third item in a list was pressed, position is `2`
}});
 setOnItemSelectedListener :
Event Handler : onItemSelected()
Callback when an item is Selected.
Syntax Example :
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
tv.setText("Spinner selected : ");
tv.setText(tv.getText() + parent.getItemAtPosition(position).toString());
}
Edit Text Common Listeners in Android :
In addition to the listeners described above, there are a few other common listeners for input fields in
particular.
1. addTextChangedListener
2. setOnEditorActionListener
 addTextChangedListener :
Event Handler : onTextChanged
Event Handler : beforeTextChanged
Event Handler : afterTextChanged
If you want to handle an event as the text in the view is being changed, you only need to look as far as the
addTextChangedListener method on an EditText (or even TextView):
Syntax Examples :
EditText etValue = (EditText) findViewById(R.id.etValue);
etValue.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// Fires right as the text is being changed (even supplies the range of text)
}
 setOnEditorActionListener :
Event Handler : onEditorAction()
when you want an action to occur once the user has finished typing text with the Soft Keyboard Keep in mind that
this is especially useful when you can see the virtual keyboard which is disabled by default in the emulator.
Syntax Example :
etValue.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
String text = v.getText().toString();
Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
});
Input View Listeners in Android :
Similarly to EditText, many common input views have listeners of their own. Almost all input
views have similar methods available.
Like :
 NumberPicker has setOnValueChangedListener
 SeekBar has setOnSeekBarChangeListener
 So almost all input view have similar methods available.
Syntax Example :
NumberPicker npValue = (NumberPicker) findViewById(R.id.npValue);
npValue.setOnValueChangedListener(new OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
// Changes based on number here
}
});

Androd Listeners

  • 1.
    Listeners in Androidstudio: We use many type of Event listeners in android . Event Listening in Android development is largely centered around the View object. 1. View Event Listeners 2. Adapter View Event Listeners 3. Edit-Text Common Listeners 4. Input View Listeners
  • 2.
    View Event Listenersin Android : Any View (Button, TextView, etc) has many event listeners that can be attached using the setOnEvent pattern which involves passing a class that implements a particular event interface. The listeners available to any View include: 1. setOnClickListener 2. setOnLongClickListener 3. setOnFocusChangeListener 4. setOnTouchListener 5. setOnMenuItemClickListener 6. setOnCreateContextMenuItemListener 7. setOnGenericMotionListener 8. setOnHoverListener 9. setOnKeyListener 10. setOnDragListener
  • 3.
     setOnClickListener : EventHandler : onClick() This is called when the user either clicks or touches or focuses upon any widget like button, text, image etc. You will use onClick() event handler to handle such event.  setOnClickLongListener : Event Handler : onLongClick() This is called when the user either clicks or touches or focuses upon any widget like button, text, image etc. for one or more seconds. You will use onLongClick() event handler to handle such event.  setOnFocusChangeListener : Event Handler : onFocusChange() This is called when the widget looses its focus ie. user goes away from the view item. You will use onFocusChange() event handler to handle such event.
  • 4.
     setOnKeyChangeListener : EventHandler : onKey() This is called when the user is focused on the item and presses or releases a hardware key on the device. You will use onKey() event handler to handle such event.  setOnTouchListener : Event Handler : onTouch() This is called when the user presses the key, releases the key, or any movement gesture on the screen. You will use onTouch() event handler to handle such event.  setOnMenuItemClickListener : Event Handler : onMenuItemClick() This is called when the user selects a menu item. You will use onMenuItemClick() event handler to handle such event.
  • 5.
     setOnCreateContextMenuItemListener : EventHandler : onCreateContextMenu() This is called when the context menu is being built(as the result of a sustained "long click).  setOnGenericMotionListeners : Event Handler : onGeenricMotion() Interface definition for a callback to be invoked when a generic motion event is dispatched to this view. The callback will be invoked before the generic motion event is given to the view.  setOnHoverListener : Event Handler : onHover() Interface definition for a callback to be invoked when a hover event is dispatched to this view. The callback will be invoked before the hover event is given to the view.
  • 6.
     setOnDragLisener : EventHandler : onDrag() Callback when the view is dragged NOTE : In java code all events work in same way. First you need a reference to the view and then you need to use the set method associated with that listener and pass in a class implementing a particular interface. Syntax Example : This pattern works for any of the view-based event listener. Button btnExample = (Button) findViewById(R.id.btnExample); btnExample.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Do something here } });
  • 7.
    Adapter View EventListeners in android : In addition to the standard View listeners, AdapterView descendants have a few more key event listeners having to do with their items: 1. setOnItemClickListener 2. setOnItemLongClickListener 3. setOnItemSelectedListener
  • 8.
     setOnItemClickListener : EventHandler : onItemClick() Callback when an item contained is clicked  setOnItemLongClickListener : Event Handler : onItemLongClick() Callback when an item contained is clicked and held. Syntax Example : This works similarly for the setting up a "long click" where an item is pressed and held down using the OnItemLongClickListener. lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // Do something here // The position is the index of the item pressed // If the third item in a list was pressed, position is `2` }});
  • 9.
     setOnItemSelectedListener : EventHandler : onItemSelected() Callback when an item is Selected. Syntax Example : spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { tv.setText("Spinner selected : "); tv.setText(tv.getText() + parent.getItemAtPosition(position).toString()); }
  • 10.
    Edit Text CommonListeners in Android : In addition to the listeners described above, there are a few other common listeners for input fields in particular. 1. addTextChangedListener 2. setOnEditorActionListener
  • 11.
     addTextChangedListener : EventHandler : onTextChanged Event Handler : beforeTextChanged Event Handler : afterTextChanged If you want to handle an event as the text in the view is being changed, you only need to look as far as the addTextChangedListener method on an EditText (or even TextView): Syntax Examples : EditText etValue = (EditText) findViewById(R.id.etValue); etValue.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // Fires right as the text is being changed (even supplies the range of text) }
  • 12.
     setOnEditorActionListener : EventHandler : onEditorAction() when you want an action to occur once the user has finished typing text with the Soft Keyboard Keep in mind that this is especially useful when you can see the virtual keyboard which is disabled by default in the emulator. Syntax Example : etValue.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_DONE) { String text = v.getText().toString(); Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show(); return true; } return false; } });
  • 13.
    Input View Listenersin Android : Similarly to EditText, many common input views have listeners of their own. Almost all input views have similar methods available. Like :  NumberPicker has setOnValueChangedListener  SeekBar has setOnSeekBarChangeListener  So almost all input view have similar methods available. Syntax Example : NumberPicker npValue = (NumberPicker) findViewById(R.id.npValue); npValue.setOnValueChangedListener(new OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { // Changes based on number here } });