Intereting Posts

Как получить текст из autocomplete textview android

У меня есть AutoCompleteTextView в моем приложении, которое работает. Я успешно создал onClickItemListener. Вопрос заключается в том, как захватить выбранный пользователем текст. И вот что: у меня есть ArrayList со словами, передаваемыми адаптеру для поиска предложений. Когда пользователь вводит слово, список предложений становится короче (в строках на стороне пользовательского интерфейса), поэтому, когда я хочу получить слово из ArrayList по индексу, выбранному пользователем, я получаю неправильное слово, потому что индексы не совпадают. Как я могу получить текст (String), который пользователь выбрал без необходимости связываться с индексом? Вот мой код:

public class AutocompleteActivity extends BaseActivity { private DBManager m_db; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.autocomplete); m_db = new DBManager(this); final ArrayList<String> words = m_db.selectAllWords(); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.listitem, words); AutoCompleteTextView tv = (AutoCompleteTextView)findViewById(R.id.autocomplete); tv.setThreshold(1); tv.setAdapter(adapter); tv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { Log.i("SELECTED TEXT WAS------->", words.get(arg2)); } }); } } 

Solutions Collecting From Web of "Как получить текст из autocomplete textview android"

arg0 является вашим AdapterView и arg2 позицией.

Ты пробовал:

 arg0.getItemAtPosition(arg2); 

Да … К сожалению, имя параметров в методе onItemClick, которое вы должны реализовать, не так самоописательно, но вот пример с именами, какими они являются:

 autoCompleteTextView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long rowId) { String selection = (String)parent.getItemAtPosition(position); //TODO Do something with the selected text } }); 
  • Родительский адаптер AdapterView, где произошел щелчок.
  • View Вид в AdapterView, который был нажат (это будет представление, предоставленное адаптером)
  • Position Положение точки в адаптере
  • Id Идентификатор строки элемента, который был нажат.

Для получения дополнительной информации см .: http://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener.html

Я думаю, что вы ищете это.

 String s = this.mCountry.getEditableText().toString(); 

Где mCountry – это AutoCompleteTextView .

 this.mCountry = (AutoCompleteTextView) findViewById(R.id.autocomplete_country); ArrayAdapter<String> adapterCountry = new ArrayAdapter<String>(this, R.layout.list_item, countries); this.mCountry.setAdapter(adapterCountry); 

mCountry – это список стран, и я хочу сохранить страну, выбранную в SharedPreferences .

Надеюсь это поможет.

попробуй это:

 txtPurpose.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { Purpose selected = (Purpose) arg0.getAdapter().getItem(arg2); txtPurpose.setTag(selected); } }); 

Один из других, получающих текст предложения, выбранный в AutoCompleteTextView – это

 @Override public void onItemClick(AdapterView<?> parent, View view,int position, long id) { TextView txtvw=(TextView) view; String str=txtvw.getText().toString(); int index = contactNames.indexOf(str); } 

Самый простой из всех

Для получения текста выбранного предложения в AutoCompleteTextView используйте это

  autoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.e("========>>", autoCompleteTextView.getText().toString()); } }); 

Вот код, который решит проблему.

  private AdapterView.OnItemClickListener onItemClickListener = new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int pos, long id) { int index = (int) view.getTag(); Object item = parent.getItemAtPosition(index); if (item instanceof SearchItemShareConnectionDAO) { SearchItemShareConnectionDAO dao = (SearchItemShareConnectionDAO) item; } } }; 

SetTag (Dao.getPosition) в методе getView () адаптера.

Чтобы получить текст отображаемого элемента, выбранного пользователем

 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { String selectedItemText = arg0.getItemAtPosition(arg2); Log.i("myTag", "SELECTED TEXT WAS["+selectedItemText+"]); } 

Следуя передовым методам, пожалуйста, используйте какую-то форму описательной номенклатуры для ваших переменных, ваш код будет иметь больше смысла:

 public void onItemClick(AdapterView<?> adapterViewIn, View viewIn, int selectedItemIndexIn, long id)