按照上文《安卓四大组件之活动》继续写代码
一、Toast
屏幕中间正下方弹出的文本消息,通常只显示几秒
1、定义触发点
我们将这个按钮当作Toast
的触发点,点击按钮就会弹出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, "我被点击啦!", LENGTH_SHORT).show();
}
});
}
- 第四行:
findViewById()
获取布局文件中定义的元素,返回View
对象,通过(Button)
让它向下转型为按钮对象后得到实例 - 第五行:
setOnClickListener()
将其注册为监听器,点击按钮就会执行onClick()
方法 - 第八行:静态方法
makeText()
创建出一个Toast
对象,然后被show()
了出来。其三个参数:Context
:Toast
要求的上下文,活动本身是个Context
对象,直接传入本身即可要显示的文本内容
Toast显示的时长
,这里可选两个内置常量
2、运行
二、Menu
1、创建Menu
在res
目录下新建一个menu文件夹
,然后在里面新建名为main
的菜单资源文件:
2、编写Menu
<?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>
<item/>
就是一个菜单项,id
唯一标识符,title
指定名称
3、活动中重写
在FirstActivity
中重写onCreateOptionsMenu()
,按下ctrl+O
编写代码如下:
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
- 通过
getMenuInflater()
获得MenuInflater
,再调用inflate()
就可以给当前活动创建菜单。 inflate()
第一个参数指明资源文件,第二个参数指明添加到哪个对象
4、给Menu添加事件
继续重写onOptionsItemSelected()
方法:
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.add_item:
Toast.makeText(this, "Add按钮", LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this, "Remove按钮", LENGTH_SHORT).show();
break;
default:
}
return super.onOptionsItemSelected(item);
}
第二行item.getItemId()
来判断是哪个菜单项被点击
5、运行
三、销毁活动
除了按下back
键销毁活动,活动类还提供了finish()
方法来销毁当前活动,修改按钮监听器的代码:
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Toast.makeText(FirstActivity.this, "我被点击啦!", LENGTH_SHORT).show();
finish();
}
});
点击一下就直接返回桌面了: