Android: не показывать список автозаполнения при выборе элемента

Я делал некоторые вещи, используя текстовое представление автозаполнения в своем приложении. Я получаю предложение, когда пользователь что-либо вводит. Но у меня есть один запрос, когда пользователь вводит и нажимает на предлагаемый список в текстовом представлении автозаполнения, появляется больше предложений. Я хочу ограничить результаты поиска, когда пользователь нажимает на список, и не хочу показывать там дополнительные параметры. Как мне победить эту ситуацию.

Это мой полный класс, над которым я работаю:

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;
    }

}
}

Любое руководство будет оценено.


person Anupam    schedule 22.10.2012    source источник


Ответы (1)


person    schedule
comment
Спасибо, что так быстро ответили, но поняли ли вы мой вопрос? Я хочу показать список, когда пользователь нажимает на предложение. В моем случае список снова отображается, когда пользователь нажимает на предложение. - person Anupam; 22.10.2012
comment
Попробовал ваш ответ, но после того, как я выбрал предложение, выпадающий список все еще появляется. Я хочу закрыть раскрывающийся список, когда пользователь выбирает что-либо из этого. - person Anupam; 22.10.2012
comment
Я пробовал это, но это не очень помогло. autoComplete.dismissDropDown(); - person Anupam; 22.10.2012
comment
@Anupam Теперь я проверил это, и это работает. Просто onTextChanged вызывался раньше, чем setOnItemClickListener. - person artemkaxboy; 22.10.2012
comment
+1 за это. Но я провел некоторое тестирование с этим, щелкнув заполненный элемент, и выпадающий список исчезает, отлично. Но когда вы удаляете набранное слово и пишете снова, предложение срабатывает. На этот раз список предложений не заполняется. У вас есть идеи по этому поводу? - person Anupam; 22.10.2012
comment
@Анупам Это просто. Внутри onItemClick вы можете добавить еще один TextWatcher, который будет следить за повторным нажатием клавиши. Позже попробую, отпишусь о результатах. - person artemkaxboy; 27.10.2012