studio quitar programacion móviles libros desarrollo desarrollar curso como aprende aplicación aplicaciones actionbar android autocomplete autosuggest

quitar - Android: no mostrar la lista de sugerencias automáticas cuando se selecciona un elemento



manual de programacion android pdf (1)

public class WikiSuggestActivity extends Activity { public String data; public List<String> suggest; public AutoCompleteTextView autoComplete; public ArrayAdapter<String> aAdapter; public TextWatcher mTextWatcher = new TextWatcher() { public void afterTextChanged(Editable editable) { // TODO Auto-generated method stub } public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } public void onTextChanged(CharSequence s, int start, int before, int count) { String newText = s.toString(); new getJson().execute(newText); } }; public boolean watch = true; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); suggest = new ArrayList<String>(); autoComplete = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1); autoComplete.addTextChangedListener( mTextWatcher ); autoComplete.setOnItemClickListener( new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { autoComplete.removeTextChangedListener( mTextWatcher ); aAdapter.clear(); watch = false; } }); } class getJson extends AsyncTask<String, String, String> { @Override protected String doInBackground(String... key) { String newText = key[0]; newText = newText.trim(); newText = newText.replace(" ", "+"); try { HttpClient hClient = new DefaultHttpClient(); HttpGet hGet = new HttpGet( "http://en.wikipedia.org/w/api.php?action=opensearch&search=" + newText + "&limit=8&namespace=0&format=json"); ResponseHandler<String> rHandler = new BasicResponseHandler(); data = hClient.execute(hGet, rHandler); suggest = new ArrayList<String>(); JSONArray jArray = new JSONArray(data); for (int i = 0; i < jArray.getJSONArray(1).length(); i++) { String SuggestKey = jArray.getJSONArray(1).getString(i); suggest.add(SuggestKey); } } catch (Exception e) { Log.w("Error", e.getMessage()); } if( watch ) runOnUiThread(new Runnable() { public void run() { aAdapter = new ArrayAdapter<String>( getApplicationContext(), R.layout.item, suggest); autoComplete.setAdapter(aAdapter); aAdapter.notifyDataSetChanged(); } }); return null; } } }

Estaba haciendo algunas cosas usando la vista de texto de autocompletar en mi aplicación. Recibo sugerencias cuando el usuario escribe algo. Pero, tengo una consulta, cuando el usuario escribe y toca en la lista sugerida en la vista de texto de autocompletar, aparecen más sugerencias. Quiero limitar los resultados de búsqueda cuando el usuario toca la lista y no quiero mostrar más opciones allí. ¿Cómo puedo superar esta situación?

Esta es mi clase completa, en la que estoy trabajando:

public class WikiSuggestActivity extends Activity { public String data; public List<String> suggest; public AutoCompleteTextView autoComplete; public ArrayAdapter<String> aAdapter; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); suggest = new ArrayList<String>(); autoComplete = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1); autoComplete.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable editable) { // TODO Auto-generated method stub } public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } public void onTextChanged(CharSequence s, int start, int before, int count) { String newText = s.toString(); new getJson().execute(newText); } }); } class getJson extends AsyncTask<String, String, String> { @Override protected String doInBackground(String... key) { String newText = key[0]; newText = newText.trim(); newText = newText.replace(" ", "+"); try { HttpClient hClient = new DefaultHttpClient(); HttpGet hGet = new HttpGet( "http://en.wikipedia.org/w/api.php?action=opensearch&search=" + newText + "&limit=8&namespace=0&format=json"); ResponseHandler<String> rHandler = new BasicResponseHandler(); data = hClient.execute(hGet, rHandler); suggest = new ArrayList<String>(); JSONArray jArray = new JSONArray(data); for (int i = 0; i < jArray.getJSONArray(1).length(); i++) { String SuggestKey = jArray.getJSONArray(1).getString(i); suggest.add(SuggestKey); } } catch (Exception e) { Log.w("Error", e.getMessage()); } runOnUiThread(new Runnable() { public void run() { aAdapter = new ArrayAdapter<String>( getApplicationContext(), R.layout.item, suggest); autoComplete.setAdapter(aAdapter); aAdapter.notifyDataSetChanged(); } }); return null; } } }

Cualquier orientación será apreciada.