public class MainActivity extends AppCompatActivity {
@SuppressLint("RestrictedApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("aaaa");//主标题
toolbar.setSubtitle("bbb");//主标题正下方的附标题
toolbar.setLogo(R.drawable.ic_launcher_background);//logo
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);//这个是显示返回箭头
//toolbar.setNavigationIcon(R.mipmap.ic_launcher);//返回按钮图标
//toolbar.setOnMenuItemClickListener(onMenuItemLis);//将onMenuItemClick监听者设置给toolbar
setHasOptionsMenu(true);//
//添加左边图标点击事件
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("s","dd");
finish();
}
});
}
private void setHasOptionsMenu(boolean b) {
Log.e("d","ss");
}
// 创建上下文菜单时触发该方法
@Override
public void onCreateContextMenu(ContextMenu menu, View source,
ContextMenu.ContextMenuInfo menuInfo)
{
MenuInflater inflator = new MenuInflater(this);
//装填R.menu.context对应的菜单,并添加到menu中
inflator.inflate(R.menu.menu_main , menu);
menu.setHeaderIcon(R.drawable.ic_launcher_background);
menu.setHeaderTitle("请选择背景色");
}
// 上下文菜单中菜单项被单击时触发该方法
@Override
public boolean onContextItemSelected(MenuItem mi)
{
// 勾选该菜单项
mi.setChecked(true); // ①
switch (mi.getItemId())
{
case R.id.action_settings :
Log.e("s","上下文");
break;
}
return true;
}
//设置menu(右边图标)显示
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu); //解析menu布局文件到menu,第一中方法,使用xml定义
添加菜单项(多种方式)---第二种方法
// 1.直接指定标题
menu.add("菜单项1");
// 2.通过资源指定标题
menu.add("第二");
// // 3.显示指定菜单项的组号、ID、排序号、标题
// menu.add(
// 1, //组号
// Menu.FIRST, //唯一的ID号
// Menu.FIRST, //排序号
// "菜单项3"); //标题
//
// // 如果希望显示菜单,请返回true
return true;
}
//监听menu的方法一
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
Log.e("as","setting");
if (id == R.id.action_settings) {
Log.e("as","setting");
return false;
}
return super.onOptionsItemSelected(item);
}
// //toolbar上的右变的几个按妞,可以自己设置几个,加入OnMenuItemClickListener 的监听者:监听menu的方法二
//private Toolbar.OnMenuItemClickListener onMenuItemLis=new Toolbar.OnMenuItemClickListener(){
// @Override
// public boolean onMenuItemClick(MenuItem menuItem) {
// String msg = "";
// switch (menuItem.getItemId()) {
// case R.id.action_settings:
// msg += "Click settings";
// break;
// case R.id.action_share:
// msg += "Click share";
// break;
//
// }
//
// if(!msg.equals("")) {
// Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
// }
// return true;
// }
//
//};
public void addClick(View v){
}
}
---------menu_main.xml------------
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.wofu.six.MainActivity">
<!--showAsAction是做什么用的?-->
<!--showAsAction主要是针对菜单的显示起作用的,它有三个可选项-->
<!--always:总是显示在界面上-->
<!--never:不显示在界面上,只让出现在右边的三个点中-->
<!--ifRoom:如果有位置才显示,不然就出现在右边的三个点中-->
<!--android:orderInCategory="100"-->
<!--设置优先级,值越大优先级越低-->
<item
android:id="@+id/action_settings"
android:icon="@drawable/ic_launcher_background"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_share"
android:orderInCategory="80"
android:title="分享"
app:showAsAction="ifRoom" />
</menu>
---------------重写菜单方法----------
//菜单,点击手机上的memu按钮,就是底部中间哪个按钮
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//添加菜单的第一种方式
// getMenuInflater().inflate(R.menu.menu_main,menu);//第一个参数是menu文件夹中的资源
//第二种通过代码添加
menu.add(0,1,0,"前进");//第二个参数是id
menu.add(0,2,0,"前进");
return true;
}
//当我们想知道点击的是哪个菜单,需要重写下面的方法
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case 1:
break;
case 2:
break;
}
return super.onOptionsItemSelected(item);
}
//当菜单打开之前调用
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
//弹出自定义的对话框
return false;
}
----------menu.xml-------
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.wofu.fifteenmenu.MainActivity">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never" />
<item
android:id="@+id/action_two"
android:orderInCategory="10"
android:title="设置1"
app:showAsAction="never" />
</menu>