活动是什么?
活动(Activity) 是最容易吸引用户的地方,它是一种可以包含用户界面的组件,主要用于和用户进行交互.一个应用程序中可以包含零个或多个活动,但不包含任何活动的应用程序很少.
所有的活动都要在AndroidManifest.xml中注册才能生效,而实际上当我们创建活动的同时,已经在AndroidManifest.xml中注册过了,
我们可以打开app/src/main/Android-Manifest.xml文件中看看. 所有的活动的注册声明要放在标签内,这里是通过标签来对活动进行注册的. 在标签中我们使用了android:name 来指定具体注册哪一个活动,填入的 .FirstActivity 是 com.example.sunny.transfer_data包名的缩写,因为在最外层的标签中已经通过package属性指定了程序包名,因此在注册活动时,就可以直接使用 .FirstActivity就足够了.
不过,这样注册了活动,我们的程序仍然是不能运行的,因为还没有为程序配置主活动,也就是说,当程序运行起来的时候,不知道要首先启动哪个活动.配置主活动的方法其实 就是在标签的内部加入标签,并在这样标签里添加 和 这两句即可
除此之外,我们还可以使用android:label指定活动中标题栏的内容,标题栏是显示在活动最顶部的,需要注意的是,给主活动指定的label不仅会成为标题栏中的内容,还会成为启动器(Launcher)中应用程序显示的名称.
在活动中使用Toast
Toast是Android系统提供的一种非常好的提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView()方法来给当前的活动加载一个布局
setContentView(R.layout.first_layout);
// Toast是一种提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后消失
// findViewById返回一个View对象,向下转型将它转为Button对象
Button btn1 = (Button) findViewById(R.id.button_1);
// 调用setOnClickListener来注册一个监听器,当点击按钮时 会调用OnClick方法
btn1.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
// Toast用法: 通过静态方法makeText()创建一个Toast对象,然后调用show()方法将Toast显示出来就可以了
// 三个参数: arg1: Context,传活动本身 arg2: Toast显示的内容 arg3: 显示的时长
Toast.makeText(FirstActivity.this,"你好,朝阳",
Toast.LENGTH_SHORT).show();
}
});
}
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,在menu文件夹下新建 main的菜单文件,右击 menu文件夹-->New-->Menu resource file.
在main.xml文件中添加
接着重新回到FirstActivity中来重写 onCreateOptionsMenu()方法
public boolean onCreateOptionsMenu(Menu menu){
// 通过getMenuInflater方法得到MenuInflater对象,调用inflate方法给当前活动创建菜单
// inflate()方法两个参数 arg1: 指定我们通过哪个资源文件来创建菜单. R.menu.main
// arg2: 指定我们菜单项添加到哪一个Menu对象中.,返回true表示创建的菜单显示出来
getMenuInflater().inflate(R.menu.main,menu);
return true;
}
// 菜单的响应事件
public boolean onOptionsItemSelected(MenuItem item){
// item.getItemID() 判断我们点击的是哪个菜单,然后给每个菜单加入Toast
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;
}
销毁一个活动
Activity类提供一个finish()方法,我们在活动中调用这个方法就可以销毁当前活动了