android studio开发笔记五
1.activity:一个应用程序组件,提供用户与程序交互的界面
2.android四大组件:
--activity --service --BroadcastReceiver --Content Provider
3.如何创建使用activity
(1)继承android的acivity的类
(2)重写方法
(3)设置显示布局
(4)在androidmanifest文件中,注册activity
4.activity的生命周期:创建--->销毁
onCreate()创建 onStart()运行 onResume()获取焦点
onPause()失去焦点 onStop()暂停 onDestroy()销毁 onRestart()
onCreate()->onStart()->onResume()->onPause()->onStop()->onDestroy()
5.activity的四种状态:
(1)活动状态:activity处于界面最顶端,获取焦点
(2)暂停状态:activity失去焦点,但对用户可见,程序暂停
(3)停止状态:activity被完全遮挡,但保留所有的状态和成员信息
比如返回home界面,程序在后台运行
(4)非活动状态:activity被停止
Intent
1.由Intent来协助完成andro各个组件之间的通信
2.实现跳转方式:
(1)>startActivity(intent)--无返回结果
(2)>startActivityForResult(intent,requestCode)
--有返回结果,即两个页面能够进行数据的交换
>onActivityResult()
>setResult()
代码:
manifest文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.administrator.myintent">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
</activity>
<activity android:name=".FActivity">
//下面这段代码,表示以此为首页
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SActivity">
</activity>
</application>
</manifest>
第一个页面的代码:
public class FActivity extends Activity {
private Button bt1;
private Button bt2;
private TextView tv;
@Override
protected void onCreate(Bundle saveInstanceState){
super.onCreate(saveInstanceState);
setContentView(R.layout.factivity);
/*
通过点击bt1实现页面之间的跳转
1.startactivity的方式来实现
1.>初始化intent
*/
bt1=(Button)findViewById(R.id.button1_first);
bt2=(Button)findViewById(R.id.button2_first);
tv=(TextView)findViewById(R.id.textView1);
bt1.setOnClickListener(new View.OnClickListener() {
/*
第一个参数:上下文this
第二个参数:目标文件
*/
@Override
public void onClick(View v) {
Intent intent=new Intent(FActivity.this,SActivity.class);
startActivity(intent);
}
});
/*
通过startActivityForresult实现
*/
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(FActivity.this,SActivity.class);
/*
第一个参数是Intent参数
第二个参数是请求的一个标识,为整数类型
*/
startActivityForResult(intent,1);
}
});
}
/*
通过startActivityForResult跳转,接受返回的数据
第一个参数:请求的标识
第二个参数:第二个页面返回的标识,即能够知道是从哪个页面返回过来的
第三个参数:第二个页面回传的数据
*/
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data){
super.onActivityResult(requestCode,requestCode,data);
if(requestCode==1&&resultCode==2){
String content=data.getStringExtra("data");
tv.setText(content);
}
}
}
第二个页面的代码:
public class SActivity extends Activity {
private Button bt;
private String content="这是第二个页面返回的数据";
@Override
protected void onCreate(Bundle hInstace){
super.onCreate(hInstace);
setContentView(R.layout.sactivity);
/*
第二个页面什么时候开始回传数据
回传到第一个页面的数据实际上是一个Intent对象
*/
bt=(Button)findViewById(R.id.button1_second);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent data=new Intent();
data.putExtra("data",content);
//回传数据
setResult(2,data);
//结束当前页面
finish();
}
});
}
}