代码来设置菜单
public class SendMenue extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
SubMenu file=menu.addSubMenu("文件");
SubMenu endit=menu.addSubMenu("编辑");
file.add(1,1,1,"新建");
file.add(1,2,1,"打开");
file.add(1,3,1,"保存");
file.setHeaderTitle("文件");
file.setHeaderIcon(R.drawable.normal);
endit.add(2,1,1,"复制");
endit.add(2,2,1,"粘贴");
endit.add(2,3,1,"剪切");
endit.setHeaderTitle("文件");
endit.setHeaderIcon(R.drawable.normal);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getGroupId() ==1){
switch (item.getItemId()){
case 1:
Toast.makeText(SendMenue.this,"点击了新建",Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(SendMenue.this,"点击了打开",Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(SendMenue.this,"点击了保存",Toast.LENGTH_SHORT).show();
break;
}
}else if (item.getGroupId() ==1){
switch (item.getItemId()){
case 1:
Toast.makeText(SendMenue.this,"点击了复制",Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(SendMenue.this,"点击了粘贴",Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(SendMenue.this,"点击了剪切",Toast.LENGTH_SHORT).show();
break;
}
}
return super.onOptionsItemSelected(item);
}
}
动态加在菜单 设置xml文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:title="文件"
app:showAsAction="never">
<menu>
<item android:title="@string/nee_file"
android:id="@+id/new_file"></item>
<item android:title="@string/open_file"
android:id="@+id/open_file"/>
<item android:title="@string/save_file"
android:id="@+id/save_file"/>
</menu>
</item>
<item android:title="编辑"
app:showAsAction="never">
<menu>
<item android:title="@string/copy_file"
android:id="@+id/copy_file"/>
<item android:title="@string/past_file"
android:id="@+id/past_file"/>
<item android:title="@string/shift_file"
android:id="@+id/shift_file"/>
</menu>
</item>
</menu>
java实现,注释啦静态加载的代码
public class SendMenue extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//获取xml的菜单
MenuInflater menuInflater=getMenuInflater();
menuInflater.inflate(R.menu.menu,menu);
// SubMenu file=menu.addSubMenu("文件");
// SubMenu endit=menu.addSubMenu("编辑");
// file.add(1,1,1,"新建");
// file.add(1,2,1,"打开");
// file.add(1,3,1,"保存");
// file.setHeaderTitle("文件");
// file.setHeaderIcon(R.drawable.normal);
// endit.add(2,1,1,"复制");
// endit.add(2,2,1,"粘贴");
// endit.add(2,3,1,"剪切");
// endit.setHeaderTitle("文件");
// endit.setHeaderIcon(R.drawable.normal);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.new_file:
Toast.makeText(SendMenue.this,"点击啦新建",Toast.LENGTH_SHORT).show();
break;
case R.id.open_file:
Toast.makeText(SendMenue.this,"点击啦打开",Toast.LENGTH_SHORT).show();
break;
case R.id.save_file:
Toast.makeText(SendMenue.this,"点击啦保存",Toast.LENGTH_SHORT).show();
break;
case R.id.copy_file:
Toast.makeText(SendMenue.this,"点击啦复制",Toast.LENGTH_SHORT).show();
break;
case R.id.past_file:
Toast.makeText(SendMenue.this,"点击啦粘贴",Toast.LENGTH_SHORT).show();
break;
case R.id.shift_file:
Toast.makeText(SendMenue.this,"点击啦剪切",Toast.LENGTH_SHORT).show();
break;
}
// if (item.getGroupId() ==1){
// switch (item.getItemId()){
// case 1:
// Toast.makeText(SendMenue.this,"点击了新建",Toast.LENGTH_SHORT).show();
// break;
// case 2:
// Toast.makeText(SendMenue.this,"点击了打开",Toast.LENGTH_SHORT).show();
// break;
// case 3:
// Toast.makeText(SendMenue.this,"点击了保存",Toast.LENGTH_SHORT).show();
// break;
// }
//
// }else if (item.getGroupId() ==1){
// switch (item.getItemId()){
// case 1:
// Toast.makeText(SendMenue.this,"点击了复制",Toast.LENGTH_SHORT).show();
// break;
// case 2:
// Toast.makeText(SendMenue.this,"点击了粘贴",Toast.LENGTH_SHORT).show();
// break;
// case 3:
// Toast.makeText(SendMenue.this,"点击了剪切",Toast.LENGTH_SHORT).show();
// break;
// }
//
// }
return super.onOptionsItemSelected(item);
}
context上下文菜单
public class ContextMenu extends AppCompatActivity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_menu);
showListView();
}
//设置listview显示内容
private void showListView(){
ListView listView=(ListView) findViewById(R.id.listview);
ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,getData());
listView.setAdapter(arrayAdapter);
//注册上下文菜单
this.registerForContextMenu(listView);
}
@Override
public void onCreateContextMenu(android.view.ContextMenu menu, View v, android.view.ContextMenu.ContextMenuInfo menuInfo) {
//设置menu显示的内容
menu.setHeaderTitle("文件操作");
menu.setHeaderIcon(R.drawable.normal);
menu.add(1,1,1,"新建");
menu.add(1,2,1,"复制");
menu.add(1,3,1,"粘贴");
menu.add(1,3,1,"剪切");
}
//重写方法判断当前点击那个菜单项 响应项
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()){
case 1:
Toast.makeText(ContextMenu.this,"新建",Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(ContextMenu.this,"复制",Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(ContextMenu.this,"粘贴",Toast.LENGTH_SHORT).show();
break;
case 4:
Toast.makeText(ContextMenu.this,"剪切",Toast.LENGTH_SHORT).show();
break;
}
return super.onContextItemSelected(item);
}
//构造方法显示数据
private ArrayList<String> getData(){
ArrayList<String> arrayList=new ArrayList<String>();
for (int i=0;i<5;i++){
arrayList.add("文件"+(i+1));
}
return arrayList;
}
}
需要的xml文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="match_parent"
android:id="@+id/listview"
android:layout_height="match_parent">
</ListView>
</RelativeLayout>
OptionsMenu实现选项菜单
public class OptionMenue extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_optionmenu);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//getMenuInflater().inflate(R.menu.option_menu,menu);
//静态代码添加
MenuItem item=menu.add(1,100,1,"菜单一");//api>=11图标才会显示
item.setTitle("aaaa");
item.setIcon(R.drawable.select);
menu.add(1,101,1,"菜单二");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case 100:
Intent i=new Intent(this,MainActivity.class);
item.setIntent(i);
Toast.makeText(OptionMenue.this,"点击啦菜单一",Toast.LENGTH_SHORT).show();
break;
case 101:
Toast.makeText(OptionMenue.this,"点击啦菜单二",Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
}