爱天气App实战开发

模块4:主视图UI布局 - 使用Toolbar (4)

2019-03-15  本文已影响0人  jingz课程

添加右侧新增按钮

先看效果图:


添加图标资源

右侧的新增操作按钮视觉上设计为一个白色加号图标。在res文件夹上右键单击,在弹出菜单中选择“New -> Directory”,在弹出对话框中填写drawable-xxhdpi并确认。得到如图所示的专门针对当前主流分辨率级别的资源目录:

drawable-xxhdpi

将图标文件ic_add.png拷贝到此目录下:

ic_add.png

添加菜单描述文件

对于ActionBar或Toolbar上的类似操作,Android SDK将其统一作为菜单(Menu)来处理。

首先建立菜单说明文件。在res文件夹下按照类似的方法创建名为menu的文件夹。
然后在生成的menu文件夹上右键单击,在弹出菜单中选择“New -> Menu resource”,在弹出对话框中填写文件名menu_main并确认,得到新的菜单描述文件:

menu_main.xml

然后添加按钮对应的菜单项:

菜单项

观察上面的菜单项,具有以下属性:

其中,我们的代码中出现了两处红色的错误。第一处表明目前并没有一个名叫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创建菜单:

导入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
上一篇 下一篇

猜你喜欢

热点阅读