我们假设我有3项活动。它们都提供从Volley获取的数据,因为数据来自外部API,每个活动数据都存储在ListView中,数据由我的自定义BaseAdapter提供(数据在活动之间有所不同,但它们实现了名为Listeable的通用接口,所以通常它不会#&# 39; t))
我读了一些关于创建SearchActivity的内容,据我所知,我只是传递一个查询,我需要自己在SearchActivity中进行搜索。
我的问题是,我是否可以将运行搜索的活动数据列表传递给SearchActivity,而我不需要再从外部API获取该数据,然后在我的SearchActivity中过滤该列表匹配我的查询?
我想归档行为,无论是哪种活动,我都只是将该数据传递给searchActivity,它会为我过滤它并将该数据呈现在新列表中。
我希望每个人都能理解我的问题。
也许以前有人做过这种事情并且可以共享示例代码?
答案 0 :(得分:0)
我找到了解决方案
首先,我在列表项目中实施了Parcelable(How can I make my custom objects Parcelable?之后)
比我覆盖startActivity
(这是将数据传递给搜索小工具的唯一方法)
@Override
public void startActivity(Intent intent) {
// check if search intent
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
intent.putExtra("elementsToSearch", keywordsData);
}
super.startActivity(intent);
}
确保keywordsData是一个基元数组或<? extends Parcelable>
在我的搜索结果活动中,我只是简单地称为
getIntent().getExtras().getParcelableArrayList("elementsToSearch");