Android学习笔记5:探究活动2

《第一行代码——Android》郭霖著java

更多内容,请访问个人我的博客醒岛android

在活动中使用Toast

Toast是Android系统提供的一种很是好的提醒方式,在程序中可使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,而且不会占用任何屏幕空间,咱们如今就尝试一下如何在活动中使用Toast。app

使用Toast的方法很是简单,在onCreate()方法中添加代码:ide

Button button1 = (Button) findViewById(R.id.button_1);
button1.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(FirstActivity.this, "You clicked Button 1",
        Toast.LENGTH_SHORT).show();
    }
});

在活动中,能够经过findViewById()方法获取到在布局文件中定义的元素,这里咱们传入R.id.button_1,来获得按钮的实例,这个值是刚才在first_layout.xml中经过android:id属性指定的。findViewById()方法返回的是一个View对象,咱们须要向下转型将它转成Button对象。获得了按钮的实例以后,咱们经过调用setOnClickListener()方法为按钮注册一个监听器,点击按钮时就会执行监听器中的onClick()方法。所以,弹出Toast的功能固然是要在onClick()方法中编写了。函数

Toast的用法很是简单,经过静态方法makeText()建立出一个Toast对象,而后调用show()将Toast显示出来就能够了。这里须要注意的是,makeText()方法须要传入三个参数。第一个参数是Context,也就是Toast要求的上下文,因为活动自己就是一个Context对象,所以这里直接传入FirstActivity.this便可。第二个参数是Toast显示的文本内容,第三个参数是Toast显示的时长,有两个内置常量能够选择Toast.LENGTH_SHORT和Toast.LENGTH_LONG。typecho

效果以下图所示:
clicked.PNG布局

在活动中使用Menu

菜单是手机应用中常用到的功能。平时菜单是隐藏的,只有当按下菜单键时,菜单弹出,咱们选择本身须要的功能。怎样实现这样的效果呢?方法就是在活动中使用Menu。ui

  • 首先咱们像前一篇中在res下添加layout文件夹同样,在res下添加menu文件夹。以下图。
    create menu1.PNGthis

  • 在menu文件夹上右击new→Menu resource file,以下图所示,填写文件名为main。点击OK,就生成了main.xml文件。
    create menu result0.PNGspa

  • 打开main.xml文件,插入以下代码:

    <item
        android:id="@+id/add_item"
        android:title="Add"/>
    <item
        android:id="@+id/remove_item"
        android:title="Remove"/>

这里咱们建立了两个菜单项,其中<item>标签就是用来建立具体的某一个菜单项,而后经过android:id给这个菜单项指定一个惟一标识符,经过android:title给这个菜单项指定一个名称。

  • 而后打开FirstActivity,重写onCreateOptionsMenu()方法,代码以下所示:

    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

经过getMenuInflater()方法可以获得MenuInflater对象,再调用它的inflate()方法就能够给当前活动建立菜单了。inflate()方法接收两个参数,第一个参数用于指定咱们经过哪个资源文件来建立菜单,这里固然传入R.menu.main,第二个参数用于指定咱们的菜单项将添加到哪个Menu对象当中,这里直接使用onCreateOptionsMenu()方法中传入的menu参数。而后给这个方法返回true,表示容许建立的菜单显示出来,若是返回了false,建立的菜单将没法显示。
create menu result.PNG

  • 为了使咱们的菜单不只能显示,并且可以响应操做,咱们来给它加上响应函数。打开FirstActivity,重写onOptionsItemSelected()方法:

    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.add_item:
            Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show();
            break;
        case R.id.remove_item:
            Toast.makeText(this, "You clicked Remove", Toast.LENGTH_SHORT).show();
            break;
        default:
        }
        return true;
    }

在onOptionsItemSelected()方法中,经过调用item.getItemId()来判断咱们点击的是哪个菜单项,而后给每一个菜单项加入本身的逻辑处理,这里咱们就活学活用,弹出一个刚刚学会的Toast。

  • 运行程序。。咦。。菜单键在哪里???为了更好地演示效果,让咱们把继承自Activity的FirstActivity更改成继承自AppCompatActivity。如今标题栏显示了出来,让咱们点击一下右上角的小图标,菜单显示出来了,效果以下。
    create menu result1.PNG

create menu result2.PNG

销毁一个活动

如何销毁一个活动呢?

其实答案很是简单,只要按一下Back键就能够销毁当前的活动了。不过若是你不想经过按键的方式,而是但愿在程序中经过代码来销毁活动,固然也能够,Activity类提供了一个finish()方法,咱们在活动中调用一下这个方法就能够销毁当前活动了。
修改按钮监听器中的代码,以下所示:

button1.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        finish();
    }
});

从新运行程序,这时点击一下按钮,当前的活动就被成功销毁了,效果和按下Back键是同样的。

相关文章
相关标签/搜索