今天学习了关于Activity的基础内容
1.Activity是什么
Android中有四大组件(Activity活动,Service服务,ContentProvider内容提供者,BroadcastReceiver广播接收器),Activity是我们用的最多也是最基本的组件,因为应用的所有操作都与用户相关,Activity提供窗口来和用户进行交互。
2.创建Activity
2.1要创建一个Activity首先要继承Activity类,然后必须要实现onCreat()方法。实现内初始化Activity的必需组件。在此方法内调用setContentView(),以定义Activity用户界面的布局。
2.2创建此Activity的布局页面
2.3AndroidMainfest.xml中进行Activity的注册
activity/android:name:要注册的Activity 的全限定类名
activity/android:label:Activity 左上角显示的名称
intent-filter:叫意图过滤器,一般用于隐式启动该Activity
action/android:name:意图过滤器的Action 名称,可以自定义也可以使用系统提供的。
category/android:name:意图过滤器的category 名称,只能使用系统提供的常量值。
3.Avtivity的跳转
Button bt = (Button) findViewById(R.id.bt); bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //创建需要启动的Activity对应的Intent Intent intent = new Intent(FirstActivity.this,SecondActivity.class); //启动intent对应的Activity startActivity(intent); } });
为按钮设置监听,在点击后进行跳转。Activity之间的跳转是通过Intent实现的。
4.Activity之间的数据传输
当一个Activity启动另一个Activity时,常常会有一些数据需要传过去。这时Intent就相当于一个“信使”,我们将需要传送的数据存入Intent中即可。、
Intent提供了多个方法来“携带”额外的数据,如下所示。
putExtras(Bundle data):向Intent中放入需要“携带”的数据包。
Bundle getExtras():取出Intent中所“携带”的数据包。
putExtra(String name,Xxx value):向Intent中按key-value对的形式存入数据。
getXxxExtra(String name):从Intent中按key取出指定类型的数据。
上述方法中的Bundle就是一个简单的数据携带包,该Bundle对象包含了多个方法来存入数据。
putXxx(String key, Xxx value):向Bundle中放入Int、Long等各种类型的数据。
putSerializable(String key, Serializable data):向Bundle中放入一个可序列化的对象。
getXxx(String key):从Bundle中取出Int、Long等各种类型的数据。
getSerializable(String key):从Bundle中取出一个可序列化的对象。
public class FirstActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.first_layout); Button bn = (Button) findViewById(R.id.bn); bn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { EditText name = (EditText) findViewById(R.id.name); EditText passwd = (EditText) findViewById(R.id.passwd); RadioButton male = (RadioButton) findViewById(R.id.male); String gender = male.isChecked() ? "男" : "女"; Person p = new Person(); p.setName(name.getText().toString()); p.setPasswd(passwd.getText().toString()); p.setGender(gender); //创建一个Bundle对象 Bundle data = new Bundle(); data.putSerializable("person", p); //创建一个Intent Intent intent = new Intent(FirstActivity.this,SecondActivity.class); intent.putExtras(data); //启动intent对应的Activity startActivity(intent); } }); } }
public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.seconde_layout); TextView name = (TextView) findViewById(R.id.name); TextView passwd = (TextView) findViewById(R.id.passwd); TextView gender = (TextView) findViewById(R.id.gender); //获取启动该Activity的Intent Intent intent = getIntent(); //直接通过Intent取出它所携带的Bundle数据包中的数据 Person p = (Person) intent.getSerializableExtra("person"); name.setText("您的用户名为:" + p.getName()); passwd.setText("您的密码为:" + p.getPasswd()); gender.setText("您的性别为:" + p.getGender()); } }
5.生命周期
activity的4种状态
(1)running:activity处于栈顶,处于活动状态,用户点击屏幕,屏幕可以做出响应
(2)paused:失去焦点,用户点击屏幕没有响应,状态信息和成员变量还存在,但是内存紧张时被销毁。
(3)stopped:完全被覆盖,状态信息和成员变量也还存在,但是内存紧张时也会被销毁。
(4)killed:activity已经被系统回收掉了,状态信息和成员变量都已经不在了
原文:https://www.cnblogs.com/wangzhaojun1670/p/12304638.html