java - 如何在用户单击 autocom 时显示 HashMap 键的值

标签 java android hashmap autocompletetextview

我是 android 开发和 Java 编程的新手。在我的代码中(如下所示),当用户单击 search button 时,value >key 显示在 displayField TextView 中。但我想要它,以便在用户单击(触摸)AutoCompleteTextView 下拉项上的项目时显示 value,而无需 click 搜索 按钮

import java.util.HashMap;
import java.util.Map;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

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);

    // Get a reference to the AutoCompleteTextView in the layout
    AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_searchField);

    // Gets the string array
    String[] music_note = 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);
    Button button = (Button)findViewById(R.id.button); // I want to completely remove this button eventually
    button.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {

        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");
}

最佳答案

我不明白为什么您的代码中需要 autocomplete_searchField,无论如何,如果我理解得很好,您只需要删除 button.setOnClickListener 并添加以下代码:

textView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {

        displayField.setText(map.get(adapterView.getItemAtPosition(position).toString()));

    }

});

关于java - 如何在用户单击 autocom 时显示 HashMap 键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30757478/

相关文章:

java - Java HashMap 怎么可能对 "get"操作执行恒定时间查找 O(1)?

java - 如何正确从 Java Map 检索数据?

java - 我无法让我的嵌套 for 循环参与

java - 查询 firebase 数据库时如何将项目追加到 OnDataChange 内的 ArrayList

java - Java中->是什么意思

java - 如何与Android项目共享Java类

Java - KeyListener 不工作

java - 获取辅助监视器的位置。 (小学的右侧或/左侧)

java - 我们如何在不打开浏览器的情况下在我们的android应用程序中查看网页?

java - 使用 HashMap 或类似的东西来存储对象列表