美文网首页爱天气App实战开发
模块4:主视图UI布局 - 使用Toolbar (4)

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

作者: jingz课程 | 来源:发表于2019-03-15 13:16 被阅读0次

    添加右侧新增按钮

    先看效果图:


    添加图标资源

    右侧的新增操作按钮视觉上设计为一个白色加号图标。在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

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

    菜单项

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

    • 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创建菜单:

    导入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
    

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/yjzbpqtx.html