Android Studio之菜单栏制作 (三)
选项菜单
1、定义所需要的全局变量
2、在函数onCreate(Bundle savedInstanceState)函数里获取上面定义的全局变量的资源
上面两步是必写的,下面的步骤不介绍了。
3、重写Activity的onCreateOptionsMenu(Menu menu)方法,在该方法中调用Menu对象来添加菜单或者子菜单。
4、需要应用程序响应菜单项的点击事件,可重写Activity的onOptionsItemSelected(MenuItem item)方法,调用item.getItemId()获得被点击菜单项的ID,做出不同的响应
java代码:
package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { //定义按钮的全局变量 private Button button; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 绑定按钮的资源(利用id找到xml文件中的按钮) button = findViewById(R.id.button); textView = findViewById(R.id.textView); } @Override//重写获取菜单项的方法 public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater=getMenuInflater();//获取菜单Inflater,MenuInflater加载menu布局文件 inflater.inflate(R.menu.menu1,menu);//通过inflate获取菜单资源 return true; } @Override//菜单项被点击时的逻辑处理 public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.one1: Toast.makeText(MainActivity.this,"我是一",Toast.LENGTH_LONG).show(); break; case R.id.one2: Toast.makeText(MainActivity.this,"我是二",Toast.LENGTH_LONG).show(); break; case R.id.one3: Toast.makeText(MainActivity.this,"我是三",Toast.LENGTH_LONG).show(); break; case R.id.one4: Toast.makeText(MainActivity.this,"我是四",Toast.LENGTH_LONG).show(); break; default: return true; } return true; } }
效果图如下: