Android学习笔记(三)Android 组件Activity

Android 组件Activity

Activity是一个独立的可以与用户交互的Android应用组件
功能:作为应用程序框架动态加载各种用户界面视图,实现底层消息传递等,它是一个功能强大的界面管理者,负责调度各种界面视图,实现Android应用与用户之间的交互。
Activity生命周期包括:从Activity创建到停止,需经历OnCreate()、onStart()、OnPause()、onStop()、onDestroy()等。

启动Activity方式
启动同一个Application 的Activity
启动不同Application 的Activity
启动不同apk 下的Activity:

public class MainActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Uri uri = Uri.parse("http://www.baidu.com");   
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);   
        startActivity(intent);  
    }
}

Android系统提供的“浏览网页”Activity的源代码

Uri uri = Uri.parse("http://www.baidu.com");   
              Intent intent = new Intent(Intent.ACTION_VIEW, uri);   
              startActivity(intent);
Intent intent=new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.baidu.com"));
startActivity(intent);
intent=new Intent();
intent.setAction(Intent.ACTION_VIEW);
uri=Uri.parse("http://www.baidu.com");
intent.setData(uri);
startActivity(intent);

启动同一应用程序中的其他Activity的方法。

Intent intent=new Intent();
Intent.setClass(MainActivity.this,otherActivity.class);
 startActivity(intent);

多Activity交换数据

Activity的消息传递

Intent提供了多个Activity之间进行交互的方式,应用程序可通过startActivity方法指定相应的Intent对象来启动另外一个Activity。
Bundle
如果要传递自定义的数据时例如将当前Activity的运行状态传递给下一个Activity,可使用Bundle来协助完成。
Bundle对象可被理解成一个哈希表,该映射表建立了关键字(标识)与其值(传递的数据)的映射关系
通过Bundle类的putXXX(Key, Value)方法将数据封装到Bundle对象中,如putString(String key, String value)
通过Bundle的**getXXX(String key)**方法取得关键字对应的数据

使用Intent和Bundle在Activity间传递数据
“宿主Activity“端的流程
1)首先创建一个Intent和Bundle对象,其中Bundle用于存储传递的数据;
2)然后使用Bundle的putXXX方法输入要传递的数据;
3)将要传递的数据压入Intent中intent.putExtras(Bundle对象);
4)启动“随从Activity

Bundle data=new Bundle();
data.putString("username", user);
Intent intent=new Intent(MainActivity.this,SuccessActivity.class);
intent.putExtras(data);
startActivity(intent);

“随从Activity“端的流程
1)接收“宿主Activity“的Intent;
2) 传递获得传入的Bundle对象;
3) 使用Bundle的get方法获取要传递的数据

Intent intent=getIntent();
Bundle data=intent.getExtras();
String str=data.getString("username");
tv.setText("欢迎"+str+"使用本系统!");

Activity应用

实现Activities间的消息传递:
MainActivity通过Bundle绑定单选按钮值将当前被选中的单选按钮值传送SupplActivity

myintent.putExtras(mybundle);
			/*将数据封装到Intent对象中,通过该Intent对象将数据传送给相应的Activity*/
			MainActivity.this.startActivity(myintent);

MainActivity启动SupplActivity,并传递给SupplActivity包含RadioButton值的Intent对象,接着SupplActivity通过getIntent方法获取从MainActivity传过来的Intent

Intent myintent = this.getIntent();
 //获取Activity传递的Intent
Bundle mybundle = myintent.getExtras();
//获取Intent的Bundle对象,该对象记录了传送的数据值}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值