在搜索框输入商品名称点击搜索后会显示搜索记录最新搜索的在上面
直接将搜索过的信息存在本地,点击搜索时列表展示一下就好了
直接将搜索过的信息存在本地,点击搜索时列表展示一下就好了
存到本地数据库里或者用SharedPreferences存储数据都可以
我做的如下:
/**
* 把指定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();
}
}
/**
* 初始化AutoCompleteTextView,最多显示5项提示,使
* AutoCompleteTextView在一开始获得焦点时自动提示
* @param field 保存在sharedPreference中的字段名
* @param auto 要操作的AutoCompleteTextView
*/
String[] hisArrays;
TextView tv_website_same_name;
private void initAutoComplete(String field) {
SharedPreferences sp = getSharedPreferences("network_url", 0);
String longhistory = sp.getString("history", "nothing");
hisArrays = longhistory.split(",");
//只保留最近的10条的记录
if(hisArrays.length > 6){
String[] newArrays = new String[6];
System.arraycopy(hisArrays, 0, newArrays, 0, 6);
for (int i = 0; i < newArrays.length-1; i++) {
Textview_layout = (RelativeLayout) LayoutInflater.from(this)
.inflate(R.layout.website_same_text, same_website, false);
TextView tv_website_same_name = (TextView)Textview_layout.findViewById(R.id.tv_website_same_name);
String nowString = newArrays[i].trim().toString();
tv_website_same_name.setText(nowString);
same_website.addView(Textview_layout);
//点击了历史搜索像
Textview_layout.setOnClickListener(new ItemOnClickListener(i));
}
}else {
for (int i = 0; i < hisArrays.length-1; i++) {
Textview_layout = (RelativeLayout) LayoutInflater.from(this)
.inflate(R.layout.website_same_text, same_website, false);
TextView tv_website_same_name = (TextView)Textview_layout.findViewById(R.id.tv_website_same_name);
String nowString = hisArrays[i].trim().toString();
tv_website_same_name.setText(nowString);
same_website.addView(Textview_layout);
//点击了历史搜索像
Textview_layout.setOnClickListener(new ItemOnClickListener(i));
}
}
}
class ItemOnClickListener implements OnClickListener {
int id;
public ItemOnClickListener(int id) {
super();
this.id = id;
}
@Override
public void onClick(View v) {
//将当前要搜索的信息设置为点击的信息
autotext.setText(hisArrays[id]);
}
}