android实现搜索历史的显示、删除,点击搜索功能
时间: 2024-05-05 22:22:19 浏览: 13
要实现搜索历史的显示、删除和点击搜索功能,可以按照以下步骤进行:
1. 在搜索框输入文字时,将输入的文字存储到SharedPreferences中。
2. 在搜索历史页面,读取SharedPreferences中存储的搜索历史数据,并展示在列表中。
3. 实现删除搜索历史功能,可以在列表项中添加删除按钮,点击删除按钮时,从SharedPreferences中删除对应的数据,并刷新列表。
4. 实现点击搜索功能,可以在搜索历史页面的搜索框中输入文字后,点击搜索按钮,跳转到搜索结果页面,并将搜索关键字作为参数传递给搜索结果页面。
下面是一个简单的实现示例,仅供参考:
1. 存储搜索历史
在搜索框输入文字时,将输入的文字存储到SharedPreferences中,示例代码如下:
```java
SharedPreferences sp = getSharedPreferences("search_history", Context.MODE_PRIVATE);
String inputText = editText.getText().toString();
if (!TextUtils.isEmpty(inputText)) {
// 获取当前时间戳作为搜索历史的key
String key = String.valueOf(System.currentTimeMillis());
// 将搜索历史存储到SharedPreferences中
sp.edit().putString(key, inputText).apply();
}
```
2. 展示搜索历史
在搜索历史页面,读取SharedPreferences中存储的搜索历史数据,并展示在列表中,示例代码如下:
```java
SharedPreferences sp = getSharedPreferences("search_history", Context.MODE_PRIVATE);
Map<String, ?> allEntries = sp.getAll();
List<String> historyList = new ArrayList<>();
for (Map.Entry<String, ?> entry : allEntries.entrySet()) {
historyList.add(entry.getValue().toString());
}
// 将搜索历史展示在列表中
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, historyList);
listView.setAdapter(adapter);
```
3. 删除搜索历史
在搜索历史页面的列表项中添加删除按钮,点击删除按钮时,从SharedPreferences中删除对应的数据,并刷新列表,示例代码如下:
```java
SharedPreferences sp = getSharedPreferences("search_history", Context.MODE_PRIVATE);
String key = String.valueOf(System.currentTimeMillis());
// 从SharedPreferences中删除对应的搜索历史
sp.edit().remove(key).apply();
// 刷新列表
adapter.remove(historyList.get(position));
adapter.notifyDataSetChanged();
```
4. 点击搜索
在搜索历史页面的搜索框中输入文字后,点击搜索按钮,跳转到搜索结果页面,并将搜索关键字作为参数传递给搜索结果页面,示例代码如下:
```java
String inputText = editText.getText().toString();
if (!TextUtils.isEmpty(inputText)) {
Intent intent = new Intent(this, SearchResultsActivity.class);
intent.putExtra("keyword", inputText);
startActivity(intent);
}
```
在搜索结果页面中,获取搜索关键字的方法为:
```java
String keyword = getIntent().getStringExtra("keyword");
```