您的位置:首页 > 移动开发 > Android开发

Android 复习2 有关activity

2016-07-03 14:18 274 查看

activity 之间基于intent 的通信

如何打开新活动

我们的一个应用程序 是由多个活动的,那么在活动之间如何跳转就是一个很有趣的事情;

public void startActivity(Intent intent)


我们通过上面的函数来造访新的页面,该函数不是一个针对于activity的函数,而是针对操作系统,准确的说 它将intent发送给系统级别的ActivityManager

ActivityManager主要就是用来管理众多Activity的

我们通过传递intent 告诉ActivityManager下面打开那个活动;

Intent i =new Intent(MainActivity.this,CheatActivity.class);

startActivity(i);


传递数据玩

仅仅传过去

String data="Hello SecondActivity"
Intent intent =new Intent(FirstActivity.this,SecondActivity.class)
intent.putExtra("extra_data",data);

//用intent.putExtra函数在意图中加些东西;

Intent intent=getIntent();//写在onCreate方法中
String data=intent.getStringExtra("extra_data");
Log.d("SecondActivity",data);
//取出intent中的东西


传入并返回值

首先要能够从A传到B 所以有了startactivityforresult(Intent intent,int requestCode)

紧接着,B看到A的信件后,要寄一封回信,所以有setResult(int resultCode, Intent data) 将信寄出

那么对于A来说,有一个收信的地方就非常重要,onActivityResult(int requestCode, int resultCode, Intent data)

requestCode 就是为了用于 A收信的 假设A与B要谋反,A给B寄信,B回信的时候要标明信中内容是绝密还是掩人耳目。这样A在收信的时候就不会存在问题啦。

startActivityForResult(new Intent(MainActivity.this, OtherActivity.class), 1);

/**
* 为了得到传回的数据,必须在前面的Activity中(指MainActivity类)重写onActivityResult方法
*
* requestCode 请求码,即调用startActivityForResult()传递过去的值
* resultCode 结果码,结果码用于标识返回数据来自哪个新Activity
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
String result = data.getExtras().getString("result");//得到新Activity 关闭后返回的数据
Log.i(TAG, result);
}
}


Intent intent = new Intent();
//把返回数据存入Intent
intent.putExtra("result", "My name is linjiqin");
//设置返回数据
OtherActivity.this.setResult(RESULT_OK, intent);
//关闭Activity
OtherActivity.this.finish();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: