添加右侧新增按钮
先看效果图:
添加图标资源
右侧的新增操作按钮视觉上设计为一个白色加号图标。在res
文件夹上右键单击,在弹出菜单中选择“New -> Directory”,在弹出对话框中填写drawable-xxhdpi
并确认。得到如图所示的专门针对当前主流分辨率级别的资源目录:
将图标文件ic_add.png
拷贝到此目录下:
添加菜单描述文件
对于ActionBar或Toolbar上的类似操作,Android SDK将其统一作为菜单(Menu)来处理。
首先建立菜单说明文件。在res
文件夹下按照类似的方法创建名为menu
的文件夹。
然后在生成的menu
文件夹上右键单击,在弹出菜单中选择“New -> Menu resource”,在弹出对话框中填写文件名menu_main
并确认,得到新的菜单描述文件:
然后添加按钮对应的菜单项:
菜单项观察上面的菜单项,具有以下属性:
-
android:id
:用于代码中访问的资源ID,不多说了 -
android:title
:按钮文字标题 -
android:icon
:按钮图标 -
app:showAsAction
:该项决定菜单项是显示为文字还是显示为图标。此处我们选择always
,即永远显示为图标
其中,我们的代码中出现了两处红色的错误。第一处表明目前并没有一个名叫add_city
的字符串。将光标定位到出错的位置,按Alt+Enter键,在弹出菜单中选择“Create string value resource "add_city"”,在弹出的对话框中填写字串内容并确认,Android Studio自动添加了对应的字符串资源:
第二处报错表明相关的XML名字空间没有声明。纠正方法类似,光标定位后按Alt+Enter,自动添加相关声明,报错提示也随之消失:
创建菜单
到此为止,添加按钮对应的菜单项添加完毕。现在需要在Java代码中来关联和处理这个菜单项。打开MainActivity.java
,在类MainActivity
中重写两个方法:onCreateOptionsMenu()
和onOptionsItemSelected()
,其中前者用来根据菜单描述文件在Toolbar上创建菜单或者按钮,后者处理用户点击某菜单项的事件:
下面改写onCreateOptionsMenu()
方法以按照描述文件menu_main.xml
创建菜单:
然后改写onOptionsItemSelected ()
方法来处理按钮点击事件:
这里的逻辑就是,一旦发生菜单项点击事件,首先通过条件语句比对是否对应于某个特定的菜单项,然后执行对应的操作
当点击事件发生,我们简单的弹出一条消息作为响应。在后面的课程中,将处理真正的添加新位置的操作。在条件语句内添加消息弹出代码:
弹出Toast运行看效果:
现在只剩下左侧的抽屉菜单按钮了。
本小节涉及修改的文件有:
modified: app/src/main/java/com/dmtech/iw/MainActivity.java
modified: app/src/main/res/menu/menu_main.xml
modified: app/src/main/res/values/strings.xml
网友评论