gpt4 book ai didi

android - 如何从 AutoCompleteTextView 获取文本?

转载 作者:IT老高 更新时间:2023-10-28 21:53:28 26 4
gpt4 key购买 nike

我的应用中有一个 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));
}
});
}
}

最佳答案

是的...不幸的是,您必须实现的 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
}
});
  • parent 发生点击的 AdapterView。
  • view 内部的 View 被点击的 AdapterView(这将是由适配器)
  • position View 在适配器中的位置
  • id 被点击项的行 ID。

欲了解更多信息,请参阅:http://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener.html

关于android - 如何从 AutoCompleteTextView 获取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4819813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com