Возникла такая проблема
Может кто сталкивался с подобным
есть 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) {
}
});
}
}