Activity与intent解析
1.先从看的见的入手(Toast与Menu)
Toast是一种android中一种非常好的提醒方式,它可以将一些短小的信息通知给用户,一段时间后自动消失,不会占用任何的屏幕空间。
Menu则可以大幅度帮我们节省屏幕空间,将菜单收缩。
具体实现
我们先在res目录下新建menu文件夹:右击res目录-New-Directory
再再menu文件夹下新建main菜单文件:右击menu文件夹-New-Menu resource file
就像这样
在main.xml中添加如下代码:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/add_item"
android:title="Add"/>
</menu>
1
2
3
4
5
6
7
8
<item是一个标签,用来创建一个具体的菜单项
id则是一个唯一的标识符,主要用来在全局中找到这个item
title则是给其指定一个名称
然后我们在MainActivity里重写onCreateOptionsMenu(),重写方法通过Ctrl+O快捷键寻找
然后添加以下代码`
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main,menu);
return true;
}
1
2
3
4
5
inflate里我们传入两个参数,第一个指定哪一个资源文件创建菜单,第二个表明菜单项添加到哪一个Menu对象中,这样我们就可以看得到菜单了!
当然不仅要看,还要用的了。所以定义一下菜单响应事件,我们在MainActivity里重写onOptionsItemSelected()方法
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.add_item:
Toast.makeText(this,"You clicked it",Toast.LENGTH_SHORT).show();
break;
}
return true;
}
1
2
3
4
5
6
7
8
9
这里面用了一个全新的Toast,其通过静态方法makeText()创建Toast对象,然后调用show(http://www.amjmh.com/v/BIBRGZ_558768/)将其显示出来就ok了
makeText里要传入三个参数,第一个是Context,其是一个抽象类。Activity本身就是Context的子类,所以我们直接传入this,第二个是显示的文字,第三个则是显示时长LENGTH_SHORT(2s)与LENGTH_LONG(3.5s)
非常好!我们就这样简单的掌握了两个工具