diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2011-12-18 18:20:05 +0100 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2011-12-18 18:20:05 +0100 |
| commit | 439bcd63ead65c48ead621a209b37017a3cf2858 (patch) | |
| tree | de05e29ee71ab2ce38506957b1fbb6fccf446f7a /main/src | |
| parent | 0ffc68892d75a9d6570354d0f04b0cfda7d978cd (diff) | |
| download | cgeo-439bcd63ead65c48ead621a209b37017a3cf2858.zip cgeo-439bcd63ead65c48ead621a209b37017a3cf2858.tar.gz cgeo-439bcd63ead65c48ead621a209b37017a3cf2858.tar.bz2 | |
fix #606: Use enter key to invoke action in one line input fields
Diffstat (limited to 'main/src')
| -rw-r--r-- | main/src/cgeo/geocaching/cgeoadvsearch.java | 131 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/utils/EditUtils.java | 40 |
2 files changed, 83 insertions, 88 deletions
diff --git a/main/src/cgeo/geocaching/cgeoadvsearch.java b/main/src/cgeo/geocaching/cgeoadvsearch.java index 054277c..0951b31 100644 --- a/main/src/cgeo/geocaching/cgeoadvsearch.java +++ b/main/src/cgeo/geocaching/cgeoadvsearch.java @@ -4,6 +4,7 @@ import cgeo.geocaching.activity.AbstractActivity; import cgeo.geocaching.geopoint.Geopoint; import cgeo.geocaching.geopoint.GeopointFormatter; import cgeo.geocaching.geopoint.GeopointParser; +import cgeo.geocaching.utils.EditUtils; import org.apache.commons.lang3.StringUtils; @@ -12,17 +13,14 @@ import android.content.Intent; import android.content.res.Configuration; import android.os.Bundle; import android.util.Log; -import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; -import android.view.inputmethod.EditorInfo; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.Button; import android.widget.EditText; -import android.widget.TextView; import java.util.regex.Pattern; @@ -150,13 +148,25 @@ public class cgeoadvsearch extends AbstractActivity { final Button findByCoords = (Button) findViewById(R.id.search_coordinates); findByCoords.setOnClickListener(new findByCoordsListener()); - ((EditText) findViewById(R.id.address)).setOnEditorActionListener(new findByAddressAction()); + EditUtils.setActionListener((EditText) findViewById(R.id.address), new Runnable() { + + @Override + public void run() { + findByAddressFn(); + } + }); final Button findByAddress = (Button) findViewById(R.id.search_address); findByAddress.setOnClickListener(new findByAddressListener()); final AutoCompleteTextView geocodeEdit = (AutoCompleteTextView) findViewById(R.id.geocode); - geocodeEdit.setOnEditorActionListener(new findByGeocodeAction()); + EditUtils.setActionListener(geocodeEdit, new Runnable() { + + @Override + public void run() { + findByGeocodeFn(); + } + }); geocodesInCache = app.geocodesInCache(); if (geocodesInCache != null) { final ArrayAdapter<String> geocodesAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, geocodesInCache); @@ -166,17 +176,35 @@ public class cgeoadvsearch extends AbstractActivity { final Button displayByGeocode = (Button) findViewById(R.id.display_geocode); displayByGeocode.setOnClickListener(new findByGeocodeListener()); - ((EditText) findViewById(R.id.keyword)).setOnEditorActionListener(new findByKeywordAction()); + EditUtils.setActionListener((EditText) findViewById(R.id.keyword), new Runnable() { + + @Override + public void run() { + findByKeywordFn(); + } + }); final Button findByKeyword = (Button) findViewById(R.id.search_keyword); findByKeyword.setOnClickListener(new findByKeywordListener()); - ((EditText) findViewById(R.id.username)).setOnEditorActionListener(new findByUsernameAction()); + EditUtils.setActionListener((EditText) findViewById(R.id.username), new Runnable() { + + @Override + public void run() { + findByUsernameFn(); + } + }); final Button findByUserName = (Button) findViewById(R.id.search_username); findByUserName.setOnClickListener(new findByUsernameListener()); - ((EditText) findViewById(R.id.owner)).setOnEditorActionListener(new findByOwnerAction()); + EditUtils.setActionListener((EditText) findViewById(R.id.owner), new Runnable() { + + @Override + public void run() { + findByOwnerFn(); + } + }); final Button findByOwner = (Button) findViewById(R.id.search_owner); findByOwner.setOnClickListener(new OnClickListener() { @@ -188,7 +216,13 @@ public class cgeoadvsearch extends AbstractActivity { }); EditText trackable = (EditText) findViewById(R.id.trackable); - trackable.setOnEditorActionListener(new findTrackableAction()); + EditUtils.setActionListener(trackable, new Runnable() { + + @Override + public void run() { + findTrackableFn(); + } + }); disableSuggestions(trackable); final Button displayTrackable = (Button) findViewById(R.id.display_trackable); @@ -269,19 +303,6 @@ public class cgeoadvsearch extends AbstractActivity { } } - private class findByKeywordAction implements TextView.OnEditorActionListener { - - @Override - public boolean onEditorAction(TextView view, int action, KeyEvent event) { - if (action == EditorInfo.IME_ACTION_GO) { - findByKeywordFn(); - return true; - } - - return false; - } - } - private class findByKeywordListener implements View.OnClickListener { public void onClick(View arg0) { @@ -301,21 +322,7 @@ public class cgeoadvsearch extends AbstractActivity { cgeocaches.startActivityKeyword(this, keyText); } - private class findByAddressAction implements TextView.OnEditorActionListener { - - @Override - public boolean onEditorAction(TextView view, int action, KeyEvent event) { - if (action == EditorInfo.IME_ACTION_GO) { - findByAddressFn(); - return true; - } - - return false; - } - } - private class findByAddressListener implements View.OnClickListener { - public void onClick(View arg0) { findByAddressFn(); } @@ -334,19 +341,6 @@ public class cgeoadvsearch extends AbstractActivity { startActivity(addressesIntent); } - private class findByUsernameAction implements TextView.OnEditorActionListener { - - @Override - public boolean onEditorAction(TextView view, int action, KeyEvent event) { - if (action == EditorInfo.IME_ACTION_GO) { - findByUsernameFn(); - return true; - } - - return false; - } - } - private class findByUsernameListener implements View.OnClickListener { public void onClick(View arg0) { @@ -365,19 +359,6 @@ public class cgeoadvsearch extends AbstractActivity { cgeocaches.startActivityUserName(this, usernameText); } - private class findByOwnerAction implements TextView.OnEditorActionListener { - - @Override - public boolean onEditorAction(TextView view, int action, KeyEvent event) { - if (action == EditorInfo.IME_ACTION_GO) { - findByOwnerFn(); - return true; - } - - return false; - } - } - private void findByOwnerFn() { findByOwnerFn(((EditText) findViewById(R.id.owner)).getText().toString()); } @@ -393,19 +374,6 @@ public class cgeoadvsearch extends AbstractActivity { cgeocaches.startActivityOwner(this, usernameText); } - private class findByGeocodeAction implements TextView.OnEditorActionListener { - - @Override - public boolean onEditorAction(TextView view, int action, KeyEvent event) { - if (action == EditorInfo.IME_ACTION_GO) { - findByGeocodeFn(); - return true; - } - - return false; - } - } - private class findByGeocodeListener implements View.OnClickListener { public void onClick(View arg0) { @@ -424,19 +392,6 @@ public class cgeoadvsearch extends AbstractActivity { CacheDetailActivity.startActivity(this, geocodeText); } - private class findTrackableAction implements TextView.OnEditorActionListener { - - @Override - public boolean onEditorAction(TextView view, int action, KeyEvent event) { - if (action == EditorInfo.IME_ACTION_GO) { - findTrackableFn(); - return true; - } - - return false; - } - } - private class findTrackableListener implements View.OnClickListener { public void onClick(View arg0) { diff --git a/main/src/cgeo/geocaching/utils/EditUtils.java b/main/src/cgeo/geocaching/utils/EditUtils.java new file mode 100644 index 0000000..f2f89e7 --- /dev/null +++ b/main/src/cgeo/geocaching/utils/EditUtils.java @@ -0,0 +1,40 @@ +package cgeo.geocaching.utils; + +import android.view.KeyEvent; +import android.view.View; +import android.view.inputmethod.EditorInfo; +import android.widget.EditText; +import android.widget.TextView; + +public final class EditUtils { + + public static void setActionListener(final EditText editText, final Runnable runnable) { + editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { + + @Override + public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { + if (actionId == EditorInfo.IME_ACTION_GO) { + runnable.run(); + return true; + } + + return false; + } + }); + + editText.setOnKeyListener(new View.OnKeyListener() { + + @Override + public boolean onKey(View v, int keyCode, KeyEvent event) { + // If the event is a key-down event on the "enter" button + if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) { + runnable.run(); + return true; + } + return false; + } + }); + + } + +} |
