`

AutoCompleteTextView记录历史记录

 
阅读更多



 package org.yaoming.read_his;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

public class AutoTextView extends Activity {
	private AutoCompleteTextView autoTv;
	private static final String HISTORY = "search_history";

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		autoTv = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
		initAutoComplete("history", autoTv);
		findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				saveHistoryToSharedPreference("history", autoTv);// 这里可以设定:当搜索成功时,才执行保存操作
			}
		});
	}

	/**
	 * 初始化AutoCompleteTextView,最多显示5项提示,使 AutoCompleteTextView在一开始获得焦点时自动提示
	 * 
	 * @param field
	 *            保存在sharedPreference中的字段名
	 * @param auto
	 *            要操作的AutoCompleteTextView
	 */
	private void initAutoComplete(String field, AutoCompleteTextView auto) {
		SharedPreferences sp = getSharedPreferences(HISTORY, 0);
		String longhistory = sp.getString("history", "");
		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);
		}
		auto.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				autoTv.showDropDown();
			}
		});
		auto.setAdapter(adapter);
		auto.setDropDownHeight(200);// 下拉的高度
		auto.setThreshold(1);
		auto.setCompletionHint("搜索记录");// 提示字段
	}

	/**
	 * 把指定AutoCompleteTextView中内容保存到sharedPreference中指定的字符段
	 * 
	 * @param field
	 *            保存在sharedPreference中的字段名
	 * @param auto
	 *            要操作的AutoCompleteTextView
	 */
	private void saveHistoryToSharedPreference(String field,
			AutoCompleteTextView auto) {
		String text = auto.getText().toString();
		SharedPreferences sp = getSharedPreferences(HISTORY, 0);
		String longhistory = sp.getString(field, "");
		if (!longhistory.contains(text + ",")) {// 不存在重复的
			StringBuilder sb = new StringBuilder(longhistory);
			sb.insert(0, text + ",");
			sp.edit().putString("history", sb.toString()).commit();
		}
		initAutoComplete("history", autoTv);

	}
}
 
  • 大小: 15.5 KB
分享到:
评论

相关推荐

    使用autoCompleteTextView读取历史记录

    `AutoCompleteTextView` 结合历史记录功能,可以提供更加人性化的用户体验,帮助用户快速找到之前输入过的条目。下面将详细探讨如何在Android中利用`AutoCompleteTextView`来读取并展示历史记录。 首先,我们需要...

    AutoCompleteTextView实现历史记录功能

    本示例"SearchHistoryDemo2"将展示如何利用AutoCompleteTextView来实现这样的历史记录功能。 首先,我们需要理解AutoCompleteTextView的基本用法。AutoCompleteTextView继承自EditText,它添加了一个下拉列表的功能...

    AutoCompleteTextViewDemo

    在给定的项目“AutoCompleteTextViewDemo”中,我们主要关注如何利用这个组件来展示历史记录,使得用户在输入时可以方便地选择之前输入过的条目。 **AutoCompleteTextView基本概念** AutoCompleteTextView是...

    实现历史记录提示

    AutoCompleteTextView是Android SDK中用于实现这种功能的一个组件,它能够根据用户输入的内容,动态显示一个匹配历史记录的下拉列表,方便用户选择。 AutoCompleteTextView是EditText的扩展,它结合了Spinner和...

    AutoCompleteTextView

    在"AutoCompleteTextView历史记录"这个场景中,`rememberPhoneNum`可能是指存储和加载用户输入过的电话号码。我们可以将这些历史记录保存在SharedPreferences或数据库中,当用户再次打开应用时,可以从存储中读取...

    autoCompleteTextView

    autoCompleteTextView自定义BaseAdapter,实现下拉单的自定义样式,用sqlite数据库存放历史记录,进行写入时提示。点击某个下拉单写入autoCompleeTextView中。

    AutoCompleteTextView中文和拼音关联自动提示

    在Android开发中,`AutoCompleteTextView` 是一个非常实用的组件,它允许用户在输入时自动显示匹配的建议列表,从而提升用户体验。...在实际开发中,还可以根据需求进行更多的定制,如添加搜索历史记录、支持多音字等。

    android中AutoCompleteTextView的简单用法(实现搜索历史)

    AutoCompleteTextView是...用户在输入搜索关键词时,系统会根据之前保存的历史记录显示匹配的建议,同时每次搜索成功都会将关键词保存为新的历史记录。这个功能不仅提升了用户体验,还帮助用户快速找到以前的搜索内容。

    -android搜索历史记录提示,在edittext输入框中输入,会在本地保存,下次输入会自动提示.rar

    在Android开发中,提供搜索历史记录提示功能是一个常见的需求,特别是在需要用户输入查询内容的应用中。这个功能可以提升用户体验,因为它允许用户快速访问他们之前搜索过的条目,而无需重新输入整个查询。本教程将...

    android搜索历史记录提示,在edittext输入框中输入,会在本地保存,下次输入会自动提示.zip

    AutoCompleteTextView是一个具有下拉列表功能的文本输入视图,当用户在输入框中键入字符时,它会显示匹配历史记录的建议列表。而如果选择使用EditText,我们需要实现一个自定义过滤器,根据输入的字符过滤历史记录,...

    android搜索历史记录提示

    在Android开发中,"android搜索历史记录提示"是一个常见的功能,它涉及到用户界面(UI)的交互性和用户体验(UX)的优化。这个功能允许用户在EditText输入框中输入内容时,系统能够根据之前输入过的文本历史提供自动填充...

    AutoCompleteTextView自动匹配字符

    AutoCompleteTextView是Android开发中一个常用的UI组件,它在用户输入文本时提供自动...结合实际需求,还可以进一步扩展,例如添加搜索历史记录、实时网络搜索等功能,使AutoCompleteTextView成为更强大的交互工具。

    Android学习之实现带自动补全与历史记录的自定义搜索框

    总结,实现一个带有自动补全和历史记录功能的自定义搜索框,需要结合AutoCompleteTextView、适配器、SQLite数据库以及可能的网络请求。通过这种方式,我们可以创建一个高效且用户友好的搜索体验,提升应用程序的价值...

    历史搜索记录SearchHistory

    在搜索历史记录的场景下,FlowLayout可以用于展示用户过去的搜索关键词,每个关键词作为一个TextView,它们水平排列,超出屏幕宽度时自动换行,这样布局更加美观且易于阅读。 3. **SharedPreferences**:这是...

    Android搜索框(保存历史记录和自动匹配)带有ScrollView嵌套ListView阻尼效果

    本文将深入探讨如何创建一个功能完善的搜索框,包括保存搜索历史记录、实现自动匹配功能,并结合ScrollView与ListView来达到平滑的阻尼效果。首先,我们来分析标题和描述中的关键知识点。 1. **搜索框(SearchView...

    Android中使用 AutoCompleteTextView 实现手机号格式化附带清空历史的操作

    我们需要监听`OnItemClickListener`,并在选择“清除记录”时清除`AutoCompleteTextView`的历史记录: ```java mAutoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override...

    Android开发SharedPreferences使用及调用文件管理器自定义读取文件实现

    3. **加载历史记录**:应用启动时,从SharedPreferences读取所有历史记录,将它们添加到`AutoCompleteTextView`的Adapter中,这样用户就能看到历史输入的提示。 至于文件管理器和自定义路径读取文件,Android提供了...

    RememberUserTest08062.zip

    如果登录历史记录较多,可以考虑使用SQLite数据库来存储,提供更高效的数据查询和管理。 1. 使用SharedPreferences存储历史记录: - 在用户成功登录后,将用户名保存到SharedPreferences中。 - 当用户打开登录...

Global site tag (gtag.js) - Google Analytics