选项菜单
1.创建menu源文件夹
2.res代码如下
添加
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/add"
android:icon="@mipmap/ic_launcher"
android:title="增加"
></item>
<item
android:id="@+id/update"
android:icon="@mipmap/ic_launcher"
android:title="修改"
></item>
<item
android:id="@+id/select"
android:icon="@mipmap/ic_launcher"
android:title="选择"
></item>
</menu>
android:orderInCategory="2"为设置显示顺序
3.写java代码
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu1, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id=item.getItemId();
switch (id){
case R.id.add:
Toast.makeText(MainActivity.this,"增加",Toast.LENGTH_SHORT).show();
break;
case R.id.select:
Toast.makeText(MainActivity.this,"选择",Toast.LENGTH_SHORT).show();
break;
case R.id.update:
Toast.makeText(MainActivity.this,"修改",Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
}
4,设置图标可见
添加如下代码:
//设置图标可见
try {
Class<?> clazz = Class.forName("android.support.v7.view.menu.MenuBuilder");
Method m = clazz.getDeclaredMethod("setOptionalIconsVisible", boolean.class);
m.setAccessible(true);
//MenuBuilder实现Menu接口,创建菜单时,传进来的menu其实就是MenuBuilder对象(java的多态特征)
m.invoke(menu,true);//交出控制权
} catch (Exception e) {
e.printStackTrace