mad*_*erz 29 android android-adapterview
我的应用程序中有一个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));
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
Osc*_* S. 47
是的...不幸的是,你必须实现的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
}
});
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅:http://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener.html
djg*_*djg 40
arg0成为你AdapterView和你arg2的位置.
你有没有尝试过:
arg0.getItemAtPosition(arg2);
Run Code Online (Sandbox Code Playgroud)
我认为你在寻找的是这个.
String s = this.mCountry.getEditableText().toString();
Run Code Online (Sandbox Code Playgroud)
哪里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);
Run Code Online (Sandbox Code Playgroud)
mCountry是国家列表,我想保存所选国家/地区SharedPreferences.
希望这可以帮助.
小智 5
最简单的
对于在 AutoCompleteTextView 中获取所选建议的文本,请使用此
autoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.e("========>>", autoCompleteTextView.getText().toString());
}
});
Run Code Online (Sandbox Code Playgroud)