菜单及窗口
一、菜单
1、系统菜单OptionsMenu
注意:一个Activity只有一个系统菜单
流程
1.首先需要在res下面创建一个menu文件夹,并新建一个xml文件作为OptionsMenu的布局文件
<?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"
>
//想要app属性需要引入xmlns:app="http://schemas.android.com/apk/res-auto"
<item android:id="@+id/much" android:title="更多" app:showAsAction="always"/>
<item android:id="@+id/all" android:title="全选"/>
<item android:id="@+id/px" android:title="排序"/>
<item android:id="@+id/yinc" android:title="隐藏"/>
</menu>
2.Activity重写onCreateOptionsMenu加载资源文件
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//将自己写的菜单布局放在系统菜单下
getMenuInflater().inflate(R.menu.menu1,menu);
return super.onCreateOptionsMenu(menu);
}
3.Activity重写onOptionsItemSelected加设置事件监听
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.all:
Toast.makeText(this, ""+item.getTitle(), Toast.LENGTH_SHORT).show();
break;
case R.id.px:
Toast.makeText(this, ""+item.getTitle(), Toast.LENGTH_SHORT).show();
break;
case R.id.yinc:
Toast.makeText(this, ""+item.getTitle(), Toast.LENGTH_SHORT).show();
break;
case R.id.much:
Toast.makeText(this, ""+item.getTitle(), Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
2、上下文菜单ContextMenu
流程
1.在res下面创建一个menu文件夹,并新建一个xml文件作为ContextMenu的布局文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/all" android:title="全选"/>
<item android:id="@+id/px" android:title="排序"/>
<item android:id="@+id/yinc" android:title="隐藏"/>
</menu>
2.Activity重写onCreateConextMenu加载资源文件
@Override
public void onCreateContextMenu(ContextMenu menu, View v