第二章 在活动中使用Toast Menu

Toast

Toast 是Android 系统提供的一种提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些消息会在一段时间后自动消失。并其不会占用任何屏幕空间。
首先需要定义一个弹出Toast 的触发点,点击按钮的时候弹出一个Toast

protected void onCreate(Bundle saveInstanceState){
	super.onCreate(saveInstanceState);
	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, "You clicked Button 1", Toast.LENTH_SHORT).show();
		}
	});

}

在活动中,可以通过findViewById() 方法获取布局文件中定义的元素,传入R.id.button_1,来得到按钮的实例,这个值是在first_layout.xml 中通过android:id这个属性指定的,得到按钮实例后,通过调用setOnClickListener() 方法为按钮注册一个监听器,点击按钮时就会执行监听器中的onClick() 方法。
Toast 的用法,通过静态方法makeText() 创建出一个Toast 对象,然后调用show() 将Toast 显示出来就可以了。makeText() 方法需要传入3个参数,第一个参数是Context,也就是Toast 要求的上下文,活动本身就是一个Context 对象,因此直接传入FirstActivity.this,第二个参数是Toast 显示的文本内容,第三个参数是Toast 显示的时长,有两个内置常量可以选择 Toast.LENGTH_SHORT 和 Toast.LENGTH_LONG。

在这里插入图片描述

Menu

首先在res 目录下新建一个menu 文件夹 ,右击res 目录 — New — Directory,输入文件夹名称menu,点击OK。接着在文件夹下新建一个名叫main 的菜单文件,右击menu 文件夹 — New — Menu resource file,
在这里插入图片描述
文件名输入main,点击OK 完成创建。在main.xml 文件中添加

<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"/>

这里创建了两个菜单项,其中<item> 标签就是用来创建具体的某一个菜单项,然后通过android:id 给这个菜单项指定一个唯一的标识符,通过android:title给这个菜单指定一个名词。
在FirstActivity 中重写onCreateOptionMenu()方法,重写方法可以使用Ctrl + O快捷键(Mac 系统是control + O),
在这里插入图片描述
在onCreateOptionsMenu() 方法中

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

通过getMenuInflater() 方法能够得到MenuInflater 对象,再调用它的inflate() 方法可以给当前活动创建菜单。inflate() 方法接收两个参数,第一个参数用于指定一个资源文件来创建菜单,这里传入R.menu.main。第二个参数用于指定菜单项将添加到哪一个Menu 对象当中。这个方法返回true,表示允许创建的菜单显示出来,如果返回了false,创建的菜单将无法显示。

定义菜单响应事件,在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() 来判断点击的是哪一个菜单项,然后给每个菜单项加入自己的逻辑处理。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
菜单里的菜单项默认是不会显示出来的,在标题栏的右侧多了一个三点的符号,这个就是菜单按钮了,只有点击一下菜单按钮才会弹出里面具体的内容,因此不会占用任何活动 的空间。
点击Add 菜单项就会弹出 You clicked Add 提示。

销毁一个活动

只要按一下back 键就可以销毁当前的活动了,在程序中通过代码来销毁活动,Activity 类提供了一个finish() 方法,在活动中调用一下这个方法就可以销毁当前活动了。
修改按键监听器中的方法,

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

点击一下按钮,当前的活动就成功销毁了,效果和按下Back 键是一样的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值