【发布时间】:2015-06-10 17:59:16
【问题描述】:
我的应用实现了一个HashMap,这样当在AutoCompleteTextVieweditText 中输入key,并且用户单击dropdown 项目时,该值将显示在textView 上。
唯一的问题是单击的下拉项在第一次单击时没有响应(这只发生一次,在应用程序启动后但随后可以正常工作),用户必须重新输入 key 并单击显示值之前的项目。
关于如何解决这个问题的任何建议?
Java 代码:
public class MainActivity extends ActionBarActivity
{
Map<String, String> map = new HashMap<String, String>();
private EditText autocomplete_searchField;
private TextView displayField;
String note;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
autocomplete_searchField = (AutoCompleteTextView) findViewById(R.id.autocomplete_searchField);
// Gets a reference to the AutoCompleteTextView in the layout
final AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_searchField);
// Gets the string array
String[] musicNote = getResources().getStringArray(R.array.music_notes_array);
// Creates the adapter and set it to the AutoCompleteTextView
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, musicNote);
textView.setAdapter(adapter);
displayField = (TextView) findViewById(R.id.displayField);
textView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id){
displayField.setText(map.get(adapterView.getItemAtPosition(position).toString()));
String note = autocomplete_searchField.getText().toString();
displayField.setText(map.get(note));
map.put("Doe", "a deer, a female deer");
map.put("Ray", "a drop of golden sun");
}
我见过的大多数相关解决方案都是处理按钮,而不是 AutoCompleteTextView 下拉项。我也尝试在我的 JAVA 和 XML 中设置焦点,但这些都没有解决问题。
【问题讨论】:
标签: android autocompletetextview onitemclicklistener onitemclick