요즘에는 액션바 메뉴는 아이콘만 하나 나오게 하는 게 유행이다. 최근에 안 건데, 아이콘만 표시해놔도 Long Click
을 하면 타이틀을 표시하는 풍선도움말? 같은 게 나오게 된다.
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu1" android:icon="@drawable/ic_cloud_upload_black_24dp" android:title="@null" app:showAsAction="always"/> </menu>
이렇게 하면 저 말풍선이 뜨지 않는다.
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main_manu, menu); hideMenuLabel(menu); return super.onCreateOptionsMenu(menu); } protected void hideMenuLabel(final Menu menu) { new Handler().post(new Runnable() { @Override public void run() { for (int i = 0; i < menu.size(); i++) { final View v = findViewById(menu.getItem(i).getItemId()); if(v != null) { v.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { return false; } }); } } } }); }
Lambda 를 적용하면 이렇게 짧아진다.
protected void hideMenuLabel(Menu menu) { new Handler().post(() -> { for (int i = 0; i < menu.size(); i++) { final View v = findViewById(menu.getItem(i).getItemId()); if (v != null) { v.setOnLongClickListener(v1 -> false); } } }); }