安卓开发Android Studio新版本menu菜单不显示的问题
在新版本的Android Studio 直接配置菜单会显示不出来,新版本新建菜单经节如下:
activity_main.xml(布局文件):
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" android:popupTheme="@style/ThemeOverlay.AppCompat.Light"> </androidx.appcompat.widget.Toolbar> <TextView android:id="@+id/textView" android:layout_below="@+id/toolbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> </RelativeLayout>
菜单文件,menu 文件配置如下,这一块几乎和低本一致,这块不重要
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_save" android:title="Save" android:icon="@drawable/ic_save" /> <item android:id="@+id/menu_delete" android:title="Delete" android:icon="@drawable/ic_delete" /> </menu>
最后就是主文件会多一句引用,MainActivity.java: 文件内容如下
import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; import androidx.appcompat.widget.Toolbar; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private Toolbar toolbar; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); textView = findViewById(R.id.textView); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.menu_save) { Toast.makeText(this, "Save clicked", Toast.LENGTH_SHORT).show(); return true; } else if (id == R.id.menu_delete) { Toast.makeText(this, "Delete clicked", Toast.LENGTH_SHORT).show(); return true; } return super.onOptionsItemSelected(item); } }
如此配置以后运行效果如下: