私はAutoCompleteTextView
自分のアプリに動作します。の作成に成功しましたonClickItemListener
。問題は、ユーザーが選択したテキストを取得する方法です。
そして、これが問題です:提案を検索するためにArrayList
単語を に渡します。Adapter
ユーザーが単語を入力すると、提案リストが (UI 側の行で) 短くなるため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));
}
});
}
}