我使用以下代码从列表视图中的mainactivity工具栏进行搜索:
SearchView searchView;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate( R.menu.main, menu);
MenuItem myActionMenuItem = menu.findItem( R.id.action_search);
searchView = (SearchView) myActionMenuItem.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String s) {
adapter.getFilter().filter(s);
return false;
}
});
return true;
}
但是现在我将listview移到了一个片段中,如何将适配器从片段传递到主活动?如何更新输入?有没有比通过适配器更好的方法?先谢谢你
3条答案
按热度按时间uqcuzwp81#
1->在fragment中创建静态方法
2->从onquerytextchange方法上的活动调用此方法,并传递要搜索的查询
rhfm7lfc2#
试试这个代码,
活动\u main.xml:
fragment\u main.xml:
搜索\u layout.xml:
mainactivity.java:
mainactivityfragment.java:
p8ekf7hl3#
更好的方法是使用eventbus。在这样的场景中,我们必须将某些数据从一个活动传递到一个片段,这真的很有帮助。
要使用eventbus,您需要定义一个pojo类,有点像这样:
现在,您的代码应该修改如下:
主活动.java
yourfragment.java文件