2015-07-02 9 views
1

У меня есть этот кодToolbar программный нажмите

toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { 
    @Override 
    public boolean onMenuItemClick(MenuItem item) { 
     openSearch(); 
     return true; 
    } 
}); 

в onCreate() моего Activity.

OpenSearch вызов функции открывает google теперь как поиск. Это происходит только тогда, когда пользователь нажимает на элемент действия поиска на панели инструментов. В моем случае я хочу, чтобы окно поиска автоматически открывалось при запуске. Как можно щелкнуть этот пункт меню программно.

Я не могу вызвать openSearch напрямую, потому что ему нужно создать меню.

Есть ли какие-либо обратные вызовы, сообщающие, что созданы меню действий?

+0

вы не можете использовать yourview.performclick()? – Karthik

+0

как узнать, когда он готов? –

+0

Override 'Activity # onPrepareOptionsMenu()' - он вызывается, когда меню инициализировано –

ответ

0

Вы можете попробовать что-то вроде этого:

tollbarLayout.getViewTreeObserver().addOnGlobalLayoutListener(
     new ViewTreeObserver.OnGlobalLayoutListener() { 

      @Override 
      public void onGlobalLayout() { 
        tollbarLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this); 
        tollbar.performclick(); 
       } 

      } 
     });