magic00 2020-01-29
首先要在资源目录下新建menu目录,所有的菜单布局文件都在这个目录下
选项菜单和上下文菜单的资源文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/message" android:title="消息"></item>
<item android:id="@+id/homepage" android:title="首页"></item>
<item android:id="@+id/help" android:title="帮追"></item>
<item android:id="@+id/feedback" android:title="我要反馈"></item>
<item android:id="@+id/setting" android:title="设置"></item>
<item android:id="@+id/regard" android:title="关于"></item>
</menu><?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/copy" android:title="复制"></item>
<item android:id="@+id/save" android:title="保存"></item>
</menu>java代码
package com.example.mymenui;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private TextView textView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
* 2:上下文菜单
* */
//2.1:配置上下文菜单xml文件
//2.2:为文本框注册上下文菜单
textView = (TextView)findViewById(R.id.text1);
registerForContextMenu(textView);
}
//2.3:重写onCreateContextMenu()方法,添加一个上下文菜单
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
MenuInflater menuInflater = new MenuInflater(this);
menuInflater.inflate(R.menu.contextmenu,menu);
}
//2.4:指定各个菜单项被选择时做出的处理
@Override
public boolean onContextItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.copy:
Toast.makeText(
MainActivity.this,"已复制",Toast.LENGTH_SHORT
).show();
break;
case R.id.save:
Toast.makeText(
MainActivity.this,"已保存",Toast.LENGTH_SHORT
).show();
break;
}
return super.onContextItemSelected(item);
}
/*
* 1:使用选项菜单的
* 1.1:配置菜单的xml文件
* */
//1.2:重写onCreateOptionsMenu() 方法,添加一个选项菜单
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//实例化MenuInflater对象
MenuInflater menuInflater = new MenuInflater(this);
//解析菜单资源文件
menuInflater.inflate(R.menu.menu,menu);
//返回这个菜单
return super.onCreateOptionsMenu(menu);
}
//1.3:onOptionsItemSelected()对各个菜单项进行处理
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.setting:
Intent intent1 = new Intent(
MainActivity.this,Setting.class
);
startActivity(intent1);
break;
case R.id.regard:
Intent intent2 = new Intent(
MainActivity.this,Regard.class
);
startActivity(intent2);
break;
}
return super.onOptionsItemSelected(item);
}
}