安卓自学第一弹第二发(Toast和Menu的使用)

Toast是安卓提供的一种提醒方式,将一些短小通知告诉用户,然后在一段时间之后消失,
使用方法:首先需要定义一个Toast的触发点,在第一发中已经定义过一个bvutton按钮,所以在这里选择在点击此按钮的
时候,弹出一个Toast;
在onCreate()中添加如下代码:

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first_layout);
        Button  button1 = (Button)findViewById(R.id.button_1);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(FirstActivity.this,"点我干嘛?",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显示的内容,第三个是显示的时长,有二个默认值,
重新运行即可看到如下效果,
在这里插入图片描述
Menu方法;
有时候需要充分利用手机屏幕、所以需要使用到menu方法,
首先需要在res目录下创建menu目录,new一个Directory,输入文件夹名称即可,然后在menu目录下创建一个Menu resourse File 文件名为main,然后在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"/>
    <item
        android:id="@+id/remove_item"
        android:title="Remove"/>
</menu>

这里我们创建二个菜单项,其中标签是用来创建具体的某一个菜单项,然后通过android:id来指定唯一的标识符,
通过 android:title来指定改菜单项的名称,
之后回到java代码中来重写,onCreateOptionsMenu()方法,然后在其中编写如下代码:

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

通过getMenuInflater()方法能够得到MenuInflater对象,再调用inflate()方法就可以给当前活动创建菜单了,inflate()方法接受二个参数,一个是指通过那个资源文件夹来创建菜单,当然传入main文件啦。第二个参数用于指定我们的菜单项,将添加到哪一个Menu对象中,这里传入主方法传入的menu对象,返回true表示运行创建且可以显示。这样菜单就可以显示出来啦,
当然显示出来远远不够,还要可以用,应该,需要定义菜单响应事件,在FirstActivity方法中重写,onOptionsItemSelceted()方法,代码如下:

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

在此方法中通过Item.getItemId()方法来判断我们点击了哪一个菜单项,然后重新运行程序,出现如下情况:
我们发现多了三个点点击这三个点

出现了我们之前在main.xml文件中用过android:title定义的名称
分别点击出现如下情况:
这里弹出的Toast信息是我们刚刚在onOptionsItemSelected()中定义的
如果需销毁活动在活动中调用finish()方法即可

猜你喜欢

转载自blog.csdn.net/To_Error/article/details/82830419