【问题标题】:How to get the SearchView object in a CustomView?如何在 CustomView 中获取 SearchView 对象?
【发布时间】:2014-07-26 13:18:06
【问题描述】:

我是 Android 开发的新手,我正在创建一个同时具有顶部和底部菜单的活动。我按照this 将旧的操作栏拆分为底部菜单,并使用自定义视图作为顶部菜单。 它工作正常,但有一个小问题。

我在 CustomView 中放置了一个 SearchView,我想对其进行一些样式设置。首先是启动时自动展开。但我不知道从哪里获取我的 SearchView 对象,我尝试在 onCreateOptionsMenu 中找到它,但得到一个空指针:

public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.bottom_menu, menu);

        MenuItem searchMenuItem = menu.findItem(R.id.searchView);
        searchMenuItem.expandActionView();    //null !!
        return true;
    }

我只有一个活动,我在 onCreate 方法中为自定义视图充气:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ActionBar actionBar = getActionBar();
    if (actionBar != null) {
        actionBar.setDisplayShowTitleEnabled(false);
        actionBar.setDisplayShowHomeEnabled(false);
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
        View view = View.inflate(getApplicationContext(), R.layout.top_menu_view, null);

        actionBar.setCustomView(view);
    }
}

我应该在膨胀时找到 SearchView 对象吗?

或者您对固定搜索视图有其他建议吗?

谢谢:)

【问题讨论】:

    标签: android android-custom-view searchview


    【解决方案1】:

    一个非常愚蠢的问题,

    View view = View.inflate(getApplicationContext(), R.layout.top_menu_view, null);
    SearchView searchView = (SearchView) view.findViewById(R.id.searchView_main);
    

    这就是我想要找到的东西......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-22
      • 2012-11-17
      相关资源
      最近更新 更多