活动 Activity
(最近偷了个懒,学习情况没有记录在博客上,太不应该了,一定要坚持,加油(PS:午饭少吃一个鸡腿以示惩罚))
Activity包含用户界面的组件,主要用于和用户交互。以下对新建活动时几个选项的说明
- Generate Layout File - 自动为FirstActivity创建一个对应的布局文件
- Launcher Activity - 自动将当前活动设置为当前项目的主活动
- Backwards Compatibility - 表示项目启用向下兼容的模式
此处应注意:任何项目中的任何活动都应该重写 Activity 的 onCreate() 方法,onCreate方法是Activity生命周期的第一个方法;
创建一个活动的步骤:
1-创建一个activity
2-创建和加载布局(加载布局即在activity中使用)
3-AndroidManifest文件中注册activity
4-配置主活动
在<activity>标签内部加入<intent-filter>标签,并在标签里添加两句声明:
<action android:name="android.intent.action.MAIN" /> 和 <category android:name="android.intent.category.LAUNCHER" />
<activity>标签可以指定活动的标题栏内容属性: <activity android:label="This is FirstActivity">
//此处应注意,给主活动指定label不仅会称为标题栏中的内容,还会成为启动器(Launcher)中应用程序显示的名称
在活动中使用Toast
Toast 是 Android系统提供的一种提醒方式,可以使用它将一些短小的信息通知给用户,这些消息会在一段时间后自动消失,并且不会占用任何屏幕空间。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
// 通过 findViewById() 获取到布局文件中定义的元素
Button button1 = (Button) findViewById(R.id.button_1);
//调用setOnClickListener()方法为按钮注册一个监听器,点击按钮执行监听器中的onClick()
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//通过静态方法makeText()创建出一个Toast对象,然后调用show()将Toast显示出来
Toast.makeText(FirstActivity.this, "You clicked Button 1",
Toast.LENGTH_SHORT).show();
//makeText()需要传入3个参数:context对象,文本内容,显示时长
}
})
}
在活动中使用Menu
1-资源目录 res 下创建一个menu文件夹
2-在menu文件夹下创建 xml 文件,创建菜单项
<menu xmlns:android="http://schemas.android.com/apk/res/android">
//创建菜单项,指定 id,指定菜单项名称
<item
android:id = "@+id/add_item"
android:title = "Add"/>
<item
android:id = "@+id/remove_item"
android:title = "Remove"/>
</menu>
3-在Activity 中重写 onCreatOptionsMenu() 重写快捷键 Ctrl+O
public boolean onCreatOptionsMenu(Menu menu) {
//通过getMenulflater() 方法能够得到 MenuInflater对象,再调用它的inflater() 可以给当前活动创建菜单
getMenuIflater().inflate(R.menu.main, menu);
//inflate()接收两个参数,1-指定通过哪个资源文件创建菜单,2-用于指定菜单项添加到哪一个Menu对象中这里直接使用onCreateOptionsMenu()方法中传入的menu 参数。然后给这个方法返回true,表示允许创建的菜单显示出来,返回false,无法显示
return true;
}
4-定义菜单响应事件,在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() 来判断点击的是哪一个菜单项,然后给每个菜单加入自己的逻辑处理
好啦,到这里已经可以简单的创建活动啦,那么我要怎么才能销毁一个活动呢?
两个办法:
1-back键可以销毁当前的活动
2-通过Activity类提供的 finish() 销毁当前活动
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});