我想除了在像下面的图片中所描述的设定项目创建我的动作条自定义溢出菜单项:
但如果在动作条数的空间,我不希望这样的项目1和项目2进入设定项目为溢,但进入我的溢出项目。
这是我的菜单XML code:
<菜单的xmlns:机器人=http://schemas.android.com/apk/res/android>
<项目
机器人:图标=@机器人:可绘制/ ic_menu_agenda
机器人:标题=项目1
机器人:showAsAction =ifRoom | withText/>
<项目
机器人:图标=@机器人:可绘制/ ic_menu_add
机器人:标题=项目2
机器人:showAsAction =ifRoom | withText/>
<项目机器人:ID =@ + ID / pick_action_provider
机器人:图标=@机器人:可绘制/ ic_menu_sort_by_size
机器人:showAsAction =总是
机器人:标题=溢出>
<菜单>
<项目机器人:ID =@ + ID / action_sort_size
机器人:图标=@机器人:可绘制/ ic_menu_camera
机器人:标题=项目3/>
<项目机器人:ID =@ + ID / action_sort_alpha
机器人:图标=@机器人:可绘制/ ic_menu_sort_alphabetically
机器人:标题=ITEM4/>
< /菜单>
< /项目>
<项目
机器人:ID =@ + ID / action_settings
机器人:orderInCategory =100
机器人:showAsAction =从不
机器人:标题=@字符串/ action_settings/>< /菜单>
解决方案
这会帮助你。我对溢出菜单codeD这种
在菜单/ main.xml中的文件
<项目
机器人:ID =@ + ID /溢出
机器人:orderInCategory =100
机器人:showAsAction =总是
机器人:图标=@可绘制/ ic_overflow
机器人:标题=>
<菜单>
<项目
机器人:ID =@ + ID /脸谱
机器人:标题=脸谱/>
<项目
机器人:ID =@ + ID /微博
机器人:标题=微博/>
<项目
机器人:ID =@ + ID /的Youtube
机器人:标题=YouTube的视频/>
< /菜单>
< /项目>
这里是你的java code:
@覆盖
公共布尔onCreateOptionsMenu(功能菜单){
。getMenuInflater()膨胀(R.menu.main,菜单);
返回true;
}
@覆盖
公共布尔onOptionsItemSelected(菜单项项){
//手柄操作栏操作点击
super.onOptionsItemSelected(项目);
如果(item.getItemId()== R.id.facebook){
Toast.makeText(Getstarted.this选项pressed =脸谱,Toast.LENGTH_LONG).show();
}
否则如果(item.getItemId()== R.id.Youtube){
Toast.makeText(Getstarted.this选项pressed =的YouTube,Toast.LENGTH_LONG).show();
}
否则如果(item.getItemId()== R.id.Twitter){
Toast.makeText(Getstarted.this选项pressed =微博,Toast.LENGTH_LONG).show();
}
返回true;
}
I want to create a custom overflow menu item in my ActionBar in addition at the Setting item like described in the image below:
But if there is few space in the ActionBar I don't want that the Item1 and Item2 go into the Setting item as overflow, but into "my overflow item".
this is my menu xml code:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:icon="@android:drawable/ic_menu_agenda"
android:title="Item1"
android:showAsAction="ifRoom|withText" />
<item
android:icon="@android:drawable/ic_menu_add"
android:title="Item2"
android:showAsAction="ifRoom|withText" />
<item android:id="@+id/pick_action_provider"
android:icon="@android:drawable/ic_menu_sort_by_size"
android:showAsAction="always"
android:title="Overflow" >
<menu>
<item android:id="@+id/action_sort_size"
android:icon="@android:drawable/ic_menu_camera"
android:title="Item3" />
<item android:id="@+id/action_sort_alpha"
android:icon="@android:drawable/ic_menu_sort_alphabetically"
android:title="Item4" />
</menu>
</item>
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/></menu>
解决方案
This will help you. I had coded this for overflow menu
In menu/main.xml file
<item
android:id="@+id/overflow"
android:orderInCategory="100"
android:showAsAction="always"
android:icon="@drawable/ic_overflow"
android:title="">
<menu>
<item
android:id="@+id/facebook"
android:title="Facebook"/>
<item
android:id="@+id/Twitter"
android:title="Twitter"/>
<item
android:id="@+id/Youtube"
android:title="Youtube"/>
</menu>
</item>
And here is your java code:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar actions click
super.onOptionsItemSelected(item);
if(item.getItemId() == R.id.facebook){
Toast.makeText(Getstarted.this, "Option pressed= facebook",Toast.LENGTH_LONG).show();
}
else if(item.getItemId() == R.id.Youtube){
Toast.makeText(Getstarted.this, "Option pressed= youtube",Toast.LENGTH_LONG).show();
}
else if(item.getItemId() == R.id.Twitter){
Toast.makeText(Getstarted.this, "Option pressed= twitter",Toast.LENGTH_LONG).show();
}
return true;
}