Android 实现搜索历史(1),渣本毕业两年经验

本文介绍了如何在Android应用中实现搜索历史的保存、读取、清除功能。使用SharedPreferences进行数据存储,确保搜索记录的持久化。同时,展示了如何初始化历史记录列表,并在用户点击时更新搜索框内容。
摘要由CSDN通过智能技术生成

if (value instanceof Integer) {

sp.edit().putInt(key, (Integer) value).apply();

} else if (value instanceof String) {

sp.edit().putString(key, (String) value).apply();

} else if (value instanceof Boolean) {

sp.edit().putBoolean(key, (Boolean) value).apply();

} else if (value instanceof Float) {

sp.edit().putFloat(key, (Float) value).apply();

} else if (value instanceof Long) {

sp.edit().putLong(key, (Long) value).apply();

}

}

/**

    1. 读取数据

*/

public int getInt(String key, int defValue) {

return sp.getInt(key, defValue);

}

public String getString(String key, String defValue) {

return sp.getString(key, defValue);

}

public boolean getBoolean(String key, boolean defValue) {

return sp.getBoolean(key, defValue);

}

/**

  • 读取数据

  • @param key

  • @param defValue

  • @return

*/

public T get(String key, T defValue) {

T t = null;

if (defValue instanceof String || defValue == null) {

String value = sp.getString(key, (String) defValue);

t = (T) value;

} else if (defValue instanceof Integer) {

Integer value = sp.getInt(key, (Integer) defValue);

t = (T) value;

} else if (defValue instanceof Boolean) {

Boolean value = sp.getBoolean(key, (Boolean) defValue);

t = (T) value;

} else if (defValue instanceof Float) {

Float value = sp.getFloat(key, (Float) defValue);

t = (T) value;

}

return t;

}

/**

  • 保存搜索记录

  • @param keyword

*/

public void save(String keyword) {

// 获取搜索框信息

SharedPreferences mysp = mContext.getSharedPreferences(“search_history”, 0);

String old_text = mysp.getString(“history”, “”);

// 利用StringBuilder.append新增内容,逗号便于读取内容时用逗号拆分开

StringBuilder builder = new StringBuilder(old_text);

builder.append(keyword + “,”);

// 判断搜索内容是否已经存在于历史文件,已存在则不重复添加

if (!old_text.contains(keyword + “,”)) {

SharedPreferences.Editor myeditor = mysp.edit();

myeditor.putString(“history”, builder.toString());

myeditor.commit();

}

}

public String[] getHistoryList() {

// 获取搜索记录文件内容

SharedPreferences sp = mContext.getSharedPreferences(“search_history”, 0);

String history = sp.getString(“history”, “”);

// 用逗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值