Получение выбранной позиции в AutoCompleteTextView

Интерфейс, диалоги, темы, стили, меню
Ответить
victoruni
Сообщения: 3
Зарегистрирован: 02 апр 2012, 13:19

Получение выбранной позиции в AutoCompleteTextView

Сообщение victoruni » 26 июл 2012, 08:56

Всем добрый день
Возникла такая проблема
Может кто сталкивался с подобным

есть activity с implements TextWatcher
Элемент AutoCompleteTextView
По событию onTextChanged
автозаполнение -
с сайта подгружаю каждый раз новый список для адаптера (города выбранной страны по фильтру (допустим, Мос или Моск и т.д.))
В AutoCompleteTextView список для выбора формируется корректно
Выбираю нужный город
Как определить выбранный элемент (position из списка)???

по OnItemSelectedListener не получается - не переходит на обработчик данного события - почему?????

Код: Выделить всё

    public void onTextChanged(
            CharSequence s, int start, int before, int count) {
        if(reg_city.getText().length()<3)       
        	return;
 
        cities_id.clear();     // очистка массива cities для адаптера
    	cities.clear();          //  cities_id - фоном 
    	// запрос получения данных API - 
 	    reqApi=new ApiServer(getApplicationContext());
   	    SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
   	    String requestURL=prefs.getString(getString(R.string.my_server_uri),"");
   	    requestURL+="/listcities.php";
   	    requestURL+="?country_id="+countries_id.get(reg_country.getSelectedItemPosition());
   	    String str1=reg_city.getText().toString();
        try {
        	requestURL+="&stroke="+URLEncoder.encode(str1, "windows-1251");
            } catch (UnsupportedEncodingException e) {
            return;
            }
     	// разбор ответа, заполнение массива
    	String[] citiesFields={"error","id","city","state"};
        String respCities[]=reqApi.respServer(reqApi.requestServer(requestURL),citiesFields);
        if(respCities[0].length()<1)
         {
         String xmlid[]=respCities[1].split(";");  
         String xmlcities[]=respCities[2].split(";");  
         String xmlstates[]=respCities[3].split(";");  
         for (int i = 0; i < xmlid.length; i++)
          {
          cities_id.add(xmlid[i]);
          cities.add(xmlcities[i]);
           }
         // адаптер
 
         reg_city.setAdapter(new ArrayAdapter<String>(this, 
        	      android.R.layout.simple_dropdown_item_1line, cities));
         reg_city.setOnItemSelectedListener(new OnItemSelectedListener() {
             @Override
             public void onItemSelected(AdapterView<?> parent, View view,
               int position, long id) {
                 tek_city=cities_id.get(position);
           	  Toast.makeText(getBaseContext(), " city="+cities.get(position)+" pos="+position, Toast.LENGTH_SHORT).show();
           	 // Toast.makeText(getBaseContext(), " !!!!!!!!!!=", Toast.LENGTH_SHORT).show();
               }
             @Override
             public void onNothingSelected(AdapterView<?> arg0) {
             }
            });

         }
        }


victoruni
Сообщения: 3
Зарегистрирован: 02 апр 2012, 13:19

Re: Получение выбранной позиции в AutoCompleteTextView

Сообщение victoruni » 26 июл 2012, 09:23

Проблема решилась так (OnItemClickListener() !!!!):

Код: Выделить всё

         reg_city.setOnItemClickListener(new OnItemClickListener() {
             @Override
             public void onItemClick(AdapterView<?> parent, View arg1, int pos,
                     long id) {
                   Toast.makeText(getBaseContext()," selected", Toast.LENGTH_LONG).show();

             }
           });         

Ответить