gpt4 book ai didi

android - Butterknife 从菜单绑定(bind) SearchView

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:42:55 25 4
gpt4 key购买 nike

在我当前的 Android 项目中,我使用 Butterknife 库来绑定(bind) View 并为它们使用 onClick 注释。这一切即使在 fragment 中也能很好地工作,但现在我正处于找不到解决方案的地步:

我将新的 ToolBar 用作 ActionBar 并使用 SearchView 扩展菜单。对于这个 SearchView 我想使用 @OnTextChanged 注释但是当我用菜单项 Butterknife 的 ActionView 调用绑定(bind)方法时 尝试再次重新实例化所有 View ,当然在 ActionView 中它找不到 RootLayout 的任何其他 View 。

那么有没有一种方法可以使用 Butterknife 只添加一个 View 或者我可以从我的 RootLayout 获得一个包含所有 View 的 View 和ToolBarView 以便我可以将此 View 传递给绑定(bind)方法?例如,在 Activites 中,我也可以为菜单 ID 调用 findViewById,但是如果我使用 Fragment 中的 getView(),它就不起作用。有什么想法吗?

最佳答案

我认为这是不可能的,因为 SearchView 是一个菜单项。您在菜单声明中使用的 ID 标识菜单中的这个 View ,不是 Activity 的 View ,这可能就是 Butterknife 无法绑定(bind)它的原因。

恐怕你将不得不做:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.bookings_list_menu, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();

searchView.setOnSearchClickListener(...);
searchView.setOnCloseListener(...);
searchView.setOnQueryTextListener(...);

super.onCreateOptionsMenu(menu, inflater);
}

关于android - Butterknife 从菜单绑定(bind) SearchView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32704856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com