Android Studio入门:认识和创建Activity
本章学习目标
◼ 掌握Activity的生命周期。
◼ 掌握Activity的常用方法。
◼ 掌握显式和隐式意图的使用。
◼ 掌握Activity的启动方式。
◼ 掌握Activity中的数据传递方式。
在Android系统中,用户与程序的交互是通过Activity完成的,同时Activity也是Android四大组件中使用最多的一个,本章将详细讲解有关Activity的知识。
文章目录
1 认识Activity
Activity-“活动”,它是Android应用中负责与用户交互的组件。相当于Swing编程中的JFrame控件,与其不同的是JFrame本身可以设置布局管理器,不断地向其添加组件,而Activity只能通过setContentView(View)来显示布局文件中已经定义的组件。
在应用程序中,Activity就像一个界面管理员,用户在界面上的操作是通过Activity来管理的。
2 如何创建Activity
创建一个Activity的具体步骤:
(1)定义一个类继承自android.app.Activity或其子类。(androidx.appcompat.app.AppCompatActivity)
(2)在res/layout目录下创建一个xml文件,用于创建Activity的布局。
(3)在app/manifests目录下的AndroidManifest.xml清单文件中注册Activity。
(4)重新Activity的onCreate()方法,并在该方法中使用setContentView()加载指定的布局文件。
Activity的常用事件
◼ OnKeyDown(int keyCode,KeyEvent event):按键按下事件。
◼ OnKeyUp(int keyCode,KeyEvent event):按键松开事件。
◼ OnTouchEvent(MotionEvent event):点击屏幕事件。
//响应按键按下事件
public boolean onKeyDown(int keyCode, KeyEvent event){
Toast.makeText(this,"按键已经按下了!",Toast.LENGTH_SHORT).show();
return super.onKeyDown(keyCode, event);
}
//响应按键松开事件
public boolean onKeyUp(int keyCode, KeyEvent event){
Toast.makeText(this,"按键松开了!",Toast.LENGTH_SHORT).show();
return super.onKeyDown(keyCode, event);
}
//响应屏幕触摸操作
public boolean onTouchEvent( MotionEvent event){
Toast.makeText(this,"触摸了屏幕!",Toast.LENGTH_SHORT).show();
return super.onTouchEvent(event);
}
Activity中的单击事件
第一种就是匿名内部类的方式,适合按钮比较少的情况下使用。这种方式可以直接创建OnClickListener的匿名内部类传入按钮的setOnClickListener()参数中。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i("Activity1","onCreate()");
Button button=(Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intentintent=new Intent(MainActivity.this,
SecondActivity.class);
startActivity(intent); }
}); }
Android中常用的View的点击事件: 第二种为在布局文件中设置按钮onClick属性为其指定Activity中的方法。
<!--布局文件中添加点击事件为其制定方法名-->
android:onClick=“btnclick“
Activity中的方法:
public void btnclick(View view){
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent); }
第三种就是主类实现OnClickListener接口,然后重写onClick()方法,并通过switch()语句判断哪个按钮被点击。
Public class MainActivity extends Activity implements View.OnClickListener {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button register=(Button)findViewById(R.id.register);
register.setOnClickListener(this); }
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.register:
break; } } }
3 Activity生命周期
所有的Android组件都有它自己的生命周期,表示从这一组件的创建到销毁的整个过程。
在这一过程中,组件会在活动、非活动以及可见或不可见等状态中不断切换。
Activity一般处于4种状态:
Running、Paused、Stop、Killed(运行、暂停、停止、销毁)
(1)Active/Running
Activity处于屏幕的最前端,用户完全可以看得到,并且可以与用户进行交互。对于Activity栈来说,它处于栈顶;
(2)Paused
Activity在屏幕上仍然可见,但是它已经失去了焦点,用户不能与之进行交互。暂停状态的Activity是存活的,仍然维持着其内部状态和信息,但是系统可能会在手机内存极低的情况下杀掉该Activity;
(3)Stop
Activity在屏幕上完全不能被用户看见。处于停止状态的Activity,系统仍然保留有其内部状态和成员信息,但是它经常会由于手机系统内存被征用而被系统杀死回收;
(4)Killed
Activity被系统杀死回收或者未启动。