菜单是几乎所有应用程序中常见的用户界面组件。该界面提供了一些选项,用户可以从中选择一个选项。 Android中提供3种类型的菜单类型:
- 选项菜单和应用栏
- 上下文菜单和上下文动作模式
- 弹出菜单
如何在XML中定义菜单?
在android中,我们可以在活动页面上构建菜单,但这不是标准做法,而是在菜单资源中定义菜单,然后将菜单资源添加到活动中。我们应该在菜单资源中定义菜单的原因:
- 它与我们的活动区分开来的第一,也是最重要的一环,因此可视化和调试很容易。
- 分离菜单可为我们提供灵活性,例如针对不同的平台版本,屏幕尺寸,我们可以对菜单资源文件进行一些更改。
- 与我们的活动分开,易于管理。
分步实施
步骤1:以“项目”模式打开项目
如果项目已经在“ Android ”模式下打开,请在“ Project”模式下打开您的android项目。
步骤2:在您的项目中,转到应用> src> main> res ,如下图所示。
步骤3:右键单击res文件夹> New> Android Resource Directory ,如下图所示。
步骤4:现在,从“值”下拉部分中选择菜单选项。
选择后,您会看到类似这样的屏幕。
现在点击确定。
步骤4:现在您可以在res文件夹中看到menu文件夹。
步骤5:现在要创建菜单文件,请选择菜单文件夹并右键单击它,然后选择Menu Resource File 。
步骤6:为您的菜单文件命名,例如在这里,我们将其命名为my_menu 。
然后点击确定。现在,您可以在菜单文件夹中看到my_menu.xml文件。哇,您只需要在android studio中创建菜单文件即可。因此,现在我们只需要编写几行代码即可查看菜单文件是否正常工作。
XML
Kotlin
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.Menu
import android.view.MenuInflater
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
// look at this section
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
val inflater: MenuInflater = menuInflater
inflater.inflate(R.menu.my_menu,menu)
return super.onCreateOptionsMenu(menu)
}
}
现在看一下您在菜单标签中看到的代码,即
- :它只是一个容器,包含菜单项或菜单项组。
-
- :创建菜单项
标题和图标属性是不言自明的,因此我认为不必对其进行解释。
Note: Look at the above code, android: icon, those are the icon that we have created. In your case just look at your drawable folder and give your icon name there.
好的,我们现在完成了80%的工作,只是将菜单添加到MainActvity.kt文件中
科特林
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.Menu
import android.view.MenuInflater
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
// look at this section
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
val inflater: MenuInflater = menuInflater
inflater.inflate(R.menu.my_menu,menu)
return super.onCreateOptionsMenu(menu)
}
}
只需关注注释行之后的代码,该代码块用于在我们的应用程序中为我们的菜单添加代码。现在运行您的应用程序,您可以看到结果。