00:05
你们继续啊。嗯。下面我们要看看你一个UI组件呢,是菜单。在安卓里面呢,有两种菜单,一种叫option menu,一个叫context menu。如果用中文翻译呢,一个叫选项菜单,一个叫。上下文菜单。形象菜单是这样一个大的地方,有见过这个吗?就这个菜单其实。在它的主界面就是这样的一个。是吧,嗯,他这就是一个选项菜单。好了,上循环菜单呢,现在用的越来越少了。
01:01
他是我们长按某一个视图了,就会出来在中间呢,出来一个菜单,这好像在那个。在微信里面。他就是这么做的。啊,长按微信上面某一行啊,你去操作的时候。啊,就弹出来这样一个选项。嗯,大家可以去测试一下。好了,我们呢,也主要做这样一个效果啊。现在这样,我们把那个activity给他写出来吧。看一下。这是我们的测试二,有人去测试菜单的。嗯,就写一个menu吧,来。是启动一个activity。
02:00
写一下。有menu吧?好,我们把这个呢给它建一下。好。写个注释啊。诶在这里面呢,我希望啊,自动生成的这个作者呢,应该是我怎么去修改,大家有人做过吗。嗯。Window。啊,Java。Cold style好像是nine。把拉开一眼,我看一眼啊。应该是在这个地方有一个cold star for mart。
03:02
嗯,好像不在这,我看一眼啊。在哪个地方来着。嗯。啊,代码的模板。这个代模板里面呢,有一个。Types。在type里面,它是根据你的那个电脑的用户名来生成的,对对它呢,进行一个稍微进行一个修改。啊,刚才啊,好了,需要郭老板,嗯。谁呀?来,我们试一下。
04:02
就可以了,嗯,这是menu好。那看哪。现在我们先把这个界面给它整出来,我看这下面有没有把这个有的话我就拿过来啊。因为比较简单,我就不再写这个界面了。我们主要是去做菜单。好,这里面给大家说一个东西,大家看这里。你看那啊,按数来说是在这个左在这里吧,这整个是一个文本视图。但这个阿拉换行了。看到了吧。啊,实际上在在右边是在这边还可以放放这个数字的。嗯,怎么做的呢,就这里。感恩。在自动换行啊。
05:00
嗯,界面我们做出来这个,这个我就不再说了,下面我们来看。啊,现在有这样三个问题。第一个是如何来触发menu的显示。这是一个问题啊,就是我用我通过一个什么样的操作才能选显示菜单,譬如说我们如果是option menu。是不是点这个页就可以。对吧,那如果是一个context menu了。是不是得长按呢。好了。下面一个,第二个如何向menu中添加menu item。也就是说它的整个大家看到我这里啊。这整个叫一个menu。而每一行呢?我们称之为item。对吧。你要想菜单显示出来,你必须往里面去添加item。
06:02
就这样的一个逻辑,好,那如何来添加是我们要解决的一个问题。第三个。就是如果显示出来了以后,我这里面有添加有删除,那我到底是点击的是添加还是点击删除,是不是我点击的时候有响应吗。而且还是要有对应的一个响应。当你选择某一个item的时候,如何来做出响应?这个地方大家区别menu和menu item。刚才已经跟大家说过了,好,我们呢,通过解决这三个问题来去看我们的option menu和context menu。好来,现在看我不卖。选项菜单呢,它是点击手机的menu键来触发的。那我如何来去往菜单里面添加菜单项呢?
07:03
看到activity有这样一个方法,你说那我得干嘛去?创建这个方法吗?是不是得重写这个方法吧?啊,你看它是个毁掉方法,按开头的方法。你看他传的怎么过来了?Menu,那我学干嘛?是不是添加item呀。啊,添加item,你看我要实验的效果,是不是添加两行啊,就两个item。啊,是这样的一个意思。好。啊,在这里面呢,添加item的方式呢,有两种,一种是调用menu的ADD的方法。去添加。还有一种呢,是看这里。它是先要去定义menu文件。按下面的这种方式去加载menu文件。
08:02
这样我们就能去往menu里面添加item。那下面第三个问题。选择某一个item,它如何来响应?大家看呢,这里有又有一个方法。叫on options item selected。他名字写的特别好啊,当某一个选项菜单的。Item被选中,记住了,是某一个item某一项被选中了。到此为止,就are。已经回答了上面的三个问题啊。来,我们来看一下。怎么来去实现?在这里面我们的第一个问题是我们不需要做什么事情,就如何来触发,我们到时候操作一下点击menu键就可以,对吧。
09:01
大家看着啊,我把这个把这个项目呢,给它运行起来。用起来点击它。出来了吧,我希望在这样一个界面里面点击这个menu键。能够显示。吃了两个怎么办?嗯,一个一个是我看一下啊,一个是增加一个删除。来试一下啊。这里面。我把这这几个问题呢,我把这几个问题得拿着不拿着当。没那种感觉,我把这三个问题拿着啊。嗯,先呢,我们现在是做的是那个option menu叫选项菜单。啊,关于他的第一个问题是如何触发,刚才说了应该怎么做来着。
10:02
点击哪个键menu键对吧?啊menu键这个没问题,好了下一个问题。是如何向menu中添加item。啊,重写哪个方法,On create option menu方法是吧,重写这个方法,嗯。来。试一下。EL加斜杠。是不是有啊。好,现在我们要做的是不是像这个menu里面添加ITEM8。嗯,就现在我们要做的事情不就是这个方法。啊,用来显示。Menu的方法。我们要在这个方法里面做什么呢?很简单,像menu中添加。
11:03
Item,而且这个说详细点叫option menu。选项菜单的一个方法。好,下面的问题就是我们如何向这个menu里面添加,刚才说过了,看我们就看这课件做啊。它有两种方式。第一种。调用这个I的方法就可以添加来试一下啊,存编码的方式。来menu点。ADD,好了,这个里面方法很多,我们去选择哪一个方法呢?有这样一个这样一个方法来啊,找一个合适的它。找到一个。嗯,就这个吧。看着啊,这里面有四个参数,有什么分组的ID有item的ID有,我有。Title。好,这地方呢,就两个比较重要,一个是。
12:03
Item的标识,也就是说我现在是不是添加两个呀,啊,一个叫。增加啊,添加一个叫什么呀,删除。这两个是要写字的吧,好啦。那你说item ID起什么作用啊?是不是他们俩?之间区别的标识啊。那他们俩能一样吗?不能吧啊,只要不一样就可以对不对,譬如说我选个二选个三。可以了吧,好,这两个是怎么回事呢。来。我们来点开看一下。它是用于进行对所有的manual进行分组的。分组进行操作,但这地方有一个是。你看。什么意思?就是一般情况下我们都传什么那。
13:03
啊,如果你不关心它的分组的话,就是你不存在分组这个概念,对吧,你不对他们进行分组。那就没什么,那直接从那就可以。对吧,包括这一个也是啊,这一个对他们进行什么呢?排序的,就看谁先显示谁后显示它是不是那个显示的时候也有先后顺序啊,是在上面呢,还是在什么下面,因为在上面操作的话,可能啊那个用户可能更容易操作一点,对吧。嗯。那它这里面也在说这样一个事,大家看。什么意思?就是如果你不关心这一个顺序的话,那你直接传什么。那。那么实际上就是减。零,那我们完全可以在这里传接。您。
14:02
啊。我们我们return return写到上面去了是吧,不好意思。好了。那看到这是一种比较简单的方式啊,也也是我比较喜欢用的方式。我们来看一下能不能显示。点他。是不是出来了。嗯。那除了这样一种方式呢,它还提供另外一种方式,就是先去定义菜单文件,有一种刚才叫菜单文件。那菜单文件怎么定义呢?好的,我们来试一下啊,Resource下面六一个。插文件。按照强文件,大家去找一下。是不是有menu啊?
15:01
啊,Menu好了,来啊,我来写一个,我叫option test吧,Option menu就行,这么写一下对吧。啊,看到点击finish。啊,这里有一个menu在它里面来看。是不是挨条呀?Item。我应该有几个item。两个好啦,看item应该有些东西。有ID是他的标识吧。是不是应该还有就有文本呢,啊叫什么呢。抬头。对吧,抬头好了,来,我们怎么样添加一个ID呢。加一个,呃,这一个名字听说添加吧。就写个得了。啊,这里面有个名字叫添加。
16:04
我为了跟上一次不太一样,我写个二吧,好吧,来下面啊,用它来复制一个就拉倒得了。这一个还有一个叫什么一个删除是吧?啊删除好了,我这里面呢,也叫删除啊。可以吧,嗯,可以好,菜单文件呢,就这么定义好了,这是一个最最简单的一个菜单文件。啊,菜单文件定义好了以后,我如何来利用它来去做呢,大概呢,啊这一次。我把上面的这一个呢,给它注释一下啊,不用它的这个不用它。来看怎么做啊。这一次我不用存编码方式,我用菜单文件啊,加载菜单文件的方式叫菜单文件方式。
17:00
来看着啊。在这里面需要用到一个类。叫me Fla。啊,像这个什么意思啊。啊,你可以把它看成加载器。对吧。叫那翻译过来就叫菜单加载器,对吧,菜单加载器我通过它去。是不是加载一个菜单呐。嗯。大家看呢啊,这个方式代码从哪可以找到呢?其实在文档里面它也是有的,大家其实也可以学东西,也可以在文档里面去看,我给大家简单看一下,看文档里有没有啊。啊,找到UI。UI里面呢,有什么呢,Mus。看到了吧,好了,往下翻,大家看,他说需要去干嘛?定义一个菜单在插文件里面,刚才我们是不是已经定义好了。嗯。你看这不定义了一个吗,下面。
18:01
来看看他有没有地方告诉我怎么样去加载的。这里有一个。不就是这个吗?对吧。它基本上分为两步。第一步啊,得到菜单的加载器。接着。第二步,加载菜单文件。嗯,就这样好了,我们来看一下啊。在这里面得到菜单加载器了,当起来activity就可得叫get menu。In flightt加一得到这一个menu int。有了menu in flat以后呢,它就可以去加载菜单,有一个方法叫in flight方法好,它的传量参数第一个。
19:02
这我怎么穿?大家看看啊,我的菜单文件创建到哪去了,这个比较特别。他是不是新生成了一个专门的文件夹吧。接着是这里面有个菜单文件,我就要找他。大家可以看一下怎么写。二点。Menu点。是option menu啊,就它吧。那你看啊,它这里为什么要传他呀。他是不是要把加载的对象填充到这个卖点里面去啊。就有的类似于,相当于最后是不是还是要调他们了。对吧。只是说先把它定义成菜单文件。这个也是可以的。来,我们来看一下。测试一下,点一下它。是不是可以啊?
20:00
啊,没问题。那这样呢,我们就解决了我们的第二步。啊,就如何向menu中添加menu item。啊,在这里面呢,有两种做法,一种是menu方法点啊,再一种方式呢,就是定义什么。菜单文件对吧,菜单文件的方式,菜单文件啊。好,看到。好,我们来看下一个啊,把这里面把它写上。最后一个问题,第三个问题。就是选择某一个菜单项要有对应的响应,譬如说我现在提个小要求。就是我点击某一项啊,都弹出对应的一个,我点它就弹出添加啊,我点它下面这个呢,就弹出删除。
21:05
在这里面,我们刚才看到了,我此时要去干嘛呀。我需要去重写一个方法。啊,出现一个方法,什么方法呢?来在这个地方它。On options item selected。这样一个方法。来看看是不是?可以吧,好,下面来啊。那我怎么样区别到底是点击了添加还是点击了删除了。是不是ID呀。好啦,那我就来一个。Swish。Item怎么得到ID?Data ID。没有。他有一个什么,哎,现在能看见这哥们的优势是吧,还挺好。
22:00
那。Get ID好,下面这一个该怎么写?如果是这样一种方式。因为现在我们在menu文件里面是不是定义了两个ID啊。那我现在是不是要去跟刚才定义的两个ID匹配,怎么做r.ID点。是不是我定了一个爱的定义了一个?Ids吗?迪丽巴。是这个吧。嗯。那如果说我点是。上面这个case,那我可以做一个提示。这一个呢,Context写this,接着写秀。好,这个是,呃,添加是吧,嗯。添加来下面这一个是零复制一个往下挪一下。
23:04
这个呢,删除。知道吧。好了,我们来看一下,看看行不行啊。点击它。有吗?没有是吧,来我们来看一下。就没装上是吧。那叫什么?Timeout超时了。怎么突然间超时了?哎,别别尝试了,关了吧。给他重启一下啊。
24:13
哎,应该没问题啊。给它运行一下。点上。添加you,删除kiyia。好了,那如果我们是用的上面那种方式呢,我把这一个给它给它做了。把这种方式呢,给它打开。来看到吧,那如果这样的大家想。需要改什么?是不是就ID啊,也就是说我们用下面这个K,那我这里写几。
25:02
我看看啊,我们要对应的关系是不是一个二一个三呢。那我就应该写二,好,下面再来一个。93。这样的吗?好,我们来看一下,看行不行啊。大概来。差不多一下。是不是可以啊?嗯,现在显示的是我们。新的菜单啊,没有问题啊。这也是的选项菜单,它的一个基本的使用。主要还是大家需要去关注这三个问题就行啊。嗯。
我来说两句