說實話,我不知道該寫什麼標題作爲這個問題的標題,因爲它有點複雜。如何在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