メニューのアイテムに画像を追加したいと思います。私はインターネット上で多くのソリューションを見つけましたが、どれもうまくいかないようです。メニューのアイテムに画像を追加したい
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0,0,0,"pic 1");
menu.getItem(0).setIcon(R.mipmap.pic1);
(何も起こりません)
また、私はこのようにコンテキストアクション・モードを使用してメニューを作成しようとしています:
ActionMode mode = ((AppCompatActivity)v.getContext()).startSupportActionMode(callback);
:
> private ActionMode.Callback callback = new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
getMenuInflater().inflate(R.menu.action_mode_context_menu_layout,menu);
return false;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId())
{
case R.id.left:
TV2.setText("Selected: Left");
TV2.setGravity(Gravity.LEFT);
break;
case R.id.right:
TV2.setText("Selected: Right");
TV2.setGravity(Gravity.RIGHT);
break;
case R.id.middle:
TV2.setText("Selected: Middle");
TV2.setGravity(Gravity.CENTER);
break;
}
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
TV2 = (TextView)findViewById(R.id.textView2);
TV2.setOnLongClickListener(new View.OnLongClickListener()
{
@Override
public boolean onLongClick(View v) {
ActionMode mode = ((Activity)v.getContext()).startActionMode(callback);
return true;
}
});
}
私はまた、このように試してみました
いずれの場合も何も起こらない
オーバーフローメニュー項目がアイコンを持っていません。 – CommonsWare
Welp、特にアイコンをメニュー項目に追加するという作業があります。 – AlanKalane
アクションバーやツールバーの「メニューアイテム」が「メニューアイテムオーバーフロー」を意味する場合、サポートする方法はわかりません。このアイコンはマテリアルデザインガイドラインに反するため、Googleの実装では結果としてそれをサポートする。アイコンは、アクションバー/ツールバー自体の実際のツールバースタイルのボタン(例えば、 'showAsAction'が' always'または 'ifRoom'に設定されている)でのみ使用されます。 – CommonsWare