我有两个处于活动状态的片段。检测到SearchView
搜索事件时,我想在另一个片段中执行操作。我的一个片段持有TabLayout
,而当新的Tab为用新数据选择。接口代码写为
public interface OnSearchItem {
void onSearchClick(String item);
}
FragmentA
中带有TabLayout
的接口实现
OnSearchItem mlistener;
public void onSearchItemListener(OnSearchItem mlistener){
this.mlistener=mlistener;
}
当检测到SearchView
搜索事件时,以下代码将通过接口方法调用
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit( String query) {
mlistener.onSearchClick(query);
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return true;
}
});
FragmentB
实现此接口并将方法覆盖为
public class FragmentB extends Fragment implements OnSearchItem {
}
@Override
public void onSearchClick(String item) {
Toast.makeText(getActivity().getApplicationContext(),item,Toast.LENGTH_SHORT).show();
}
检测到SearchView
搜索事件时,永远不会调用此重写方法。如何解决呢?