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



我是android开发和Java编程的新手。在我的代码中(如下所示),当用户clickssearch button时,keyvalue显示在displayField TextView中。但是我想要它,当用户点击(触摸)AutoCompleteTextView下拉项目上的一个项目时,value显示,而不需要click search button

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

您需要将ItemClickedListener设置为AutoCompleteTextView。

textView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View arg1, int position, long arg3) {
        String note = autocomplete_searchField.getText().toString();
        displayField.setText(map.get(note));
    }
});

最新更新