Как сделать элементы меню панели задач Android, чтобы автоматически щелкнуть

У меня был сценарий, где я получил пункт меню с именем «click» в панели действий. Я хочу, чтобы эта кнопка автоматически нажала, нажав вручную. Есть ли способ, с помощью которого я могу получить доступ к элементу меню панели управления Android из OnCreateView () и получить доступ к этому конкретному элементу меню с именем «кликнуть» и выполнить автоматический щелчок так же, как мы используем для кнопок с помощью метода «performclick ()».
Может ли кто-нибудь помочь мне в решении этой проблемы?

Вы, вероятно, используете что-то вроде следующего для обработки щелчков пунктов меню:

@Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { this.onBackPressed(); } } 

Поэтому просто вызовите onOptionsItemSelected(MenuItem item) с правильным пунктом меню … Это должно сделать это …

Чтобы найти элемент, который вы хотите щелкнуть, просто используйте в своем меню следующее:

 private MenuItem mItem = null; @Override public boolean onCreateOptionsMenu(Menu menu) { getSupportMenuInflater().inflate(R.menu.abs_backup, menu); // get a reference to the item you want to click manually mItem = menu.findItem(id); return true; } 

И затем просто вызываем onOptionsItemSelected(mItem); где угодно…

PS:

Это может быть красивее, если вы просто создаете функцию и вызываете эту функцию в onOptionsItemSelected и везде, где хотите имитировать нажатие кнопки … Поэтому вам не нужна ссылка на кнопку, и для меня это кажется более чистым .. ,

Вы можете создать переменную-член для MenuItem и получить доступ к ней, когда захотите. Но он может быть нулевым, поэтому перед доступом к нему убедитесь, что вы проверяете значение null. Вы также можете попробовать использовать Actionbar.setCustomView(R.layout.something); И обрабатывать весь макет и действия как вашу вину.

 protected class fragment extends Fragment{ MenuItem searchItem; @Override public void onViewCreated(View view, Bundle savedInstanceState) { if(searchItem!=null){ searchItem.setTitle("SEARCH"); searchItem.setOnMenuItemClickListener(menuItemClickListener); } } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(com.sample.R.menu.menu_main, menu); searchItem = menu.findItem(R.id.search); } @Override public boolean onOptionsItemSelected(MenuItem item) { int itemId_ = item.getItemId(); if (itemId_ == R.id.search) { handleYourEvent(); return true; } return false; } }