说实话,我不知道该写什么标题作为这个问题的标题,因为它有点复杂。如何在SearchView输入后启动片段
我有一个活动,一个片段和一个适配器。
该活动有一个ViewPager
哪个适配器是FragmentStatePagerAdapter
并且根据所选的项目或位置,它创建该片段的新实例。
片段适配器加载RecyclerView
中的项目列表。 FragmentStatePagerAdapter
中的每个新实例都是RecyclerView
的不同字符串数组。
我在活动工具栏中设置了一个搜索视图,当搜索中有输入时,它应该在片段中启动一个函数。
这些都是在片段是搜索的监听功能
@Override
public boolean onQueryTextSubmit(String s) {
return false;
}
@Override
public boolean onQueryTextChange(String s) {
performSearch(s);
return false;
}
@Override
public boolean onClose() {
performSearch(null);
return false;
}
private void performSearch(final String query) {
if (mTimer != null) {
mTimer.cancel();
mTimer.purge();
}
mTimer = new Timer();
mHandler = new Handler();
mTimer.schedule(new TimerTask() {
@Override
public void run() {
mHandler.post(new Runnable() {
@Override
public void run() {
mAdapter.filter(query);
}
});
}
}, 150);
}
的事情是,我不知道如何获得当前片段,所以我可以设置fragment.onQueryTextChange(searchInput)
并防止其创建片段的新实例。
我想要做的,简而言之,就是能够使用已定义的实例获取片段,并使其在搜索输入中的文本过滤在实例中定义的数组中,在同一活动和页面中的ViewPager
。
我不知道我是否足够清楚。但如果你能帮忙,我会非常感激。
我有一个ViewPager和它的适配器是一个FragmentStatePagerAdapter –
和whre是问题吗?你可以用getItem()从适配器中获取片段 – Kikju