新手写给自己看 ,也是上网看别人代码
import android.content.SharedPreferences; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.Button; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private AutoCompleteTextView autoTv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); autoTv = (AutoCompleteTextView) findViewById(R.id.actv); initAutoComplete("history", autoTv); Button search = (Button) findViewById(R.id.sousuo); search.setOnClickListener(this); } @Override public void onClick(View v) { // 这里可以设定:当搜索成功时,才执行保存操作 saveHistory("history", autoTv); } /** * 初始化AutoCompleteTextView,最多显示5项提示,使 * AutoCompleteTextView在一开始获得焦点时自动提示 * * @param field 保存在sharedPreference中的字段名 * @param auto 要操作的AutoCompleteTextView */ private void initAutoComplete(String field, AutoCompleteTextView auto) { SharedPreferences sp = getSharedPreferences("network_url", 0); String longhistory = sp.getString("history", "nothing"); String[] hisArrays = longhistory.split(","); //就是把你所保存的信息 设置成数据源通过适配器的方式 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, hisArrays); //只保留最近的50条的记录 if (hisArrays.length > 50) { String[] newArrays = new String[50]; System.arraycopy(hisArrays, 0, newArrays, 0, 50); adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, newArrays); } //最主要的就是 跟这个 控件设置adapter auto.setAdapter(adapter); auto.setDropDownHeight(500); auto.setThreshold(1); auto.setCompletionHint("最近的5条记录"); //这个是刚进来 然后 显示 你的历史记录 /* auto.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { AutoCompleteTextView view = (AutoCompleteTextView) v; if (hasFocus) { view.showDropDown(); } } });*/ //这个是你点击了之后 才显示你的 记录 auto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AutoCompleteTextView view = (AutoCompleteTextView) v; view.showDropDown(); } }); } /** * 把指定AutoCompleteTextView中内容保存到sharedPreference中指定的字符段 * * @param field 保存在sharedPreference中的字段名 * @param auto 要操作的AutoCompleteTextView */ private void saveHistory(String field, AutoCompleteTextView auto) { String text = auto.getText().toString(); SharedPreferences sp = getSharedPreferences("network_url", 0); String longhistory = sp.getString(field, "nothing"); if (!longhistory.contains(text + ",")) { StringBuilder sb = new StringBuilder(longhistory); sb.insert(0, text + ","); sp.edit().putString("history", sb.toString()).commit(); } } }