Я бы поставил слушателя на действие длинного клика для элемента в меню панели инструментов. Я создаю элементOnLongClickListener по пункту меню
<item
android:id="@+id/action_center"
android:title="center"
android:icon="@mipmap/ic_center_direction_100"
app:actionViewClass="android.widget.ImageView"
app:showAsAction="always" />
И я получаю это таким образом
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.menu_map, menu);
/* Set onclick listener on center icon to center at user position */
MenuItem centering = menu.findItem(R.id.action_center);
ImageView button = (ImageView) centering.getActionView();
if (button == null)
return true;
button.setOnLongClickListener(
new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
centerUserPosition();
return true;
}
}
);
return true;
}
Но это не работает. Каков правильный способ сделать это?
Вы не можете установить прослушиватель на 'onCreateOptionsMenu' реализовать' onMenuItemSelected' и реализовать runnable delay. AFAIK вы не можете установить длинный клик на элементы меню по умолчанию. Android означает –