Android多Activity简介
来源:互联网 发布:centos 安装不上ibus 编辑:程序博客网 时间:2024/06/06 10:05
Android多Activity简介
一个Activity是一个界面,多个Activity表示多个界面。本文介绍多Activity的切换。
1.创建一个OtherActivity 将继承Activity并重写onCreate方法。
public class OtherActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.otheractivity);}
2.在MainActivity中 通过intent激活组件,一共有5种方式(本应用内4种,跨应用1种)
第一种方式:
Intent intent = new Intent()intent.setClass(this,OtherActivity.class);//设置要激活的组件startActivity(intent);
第二种方式:
Intent intent = new Intent()intent.setClassName(this, "com.example.mulactivity.OtherActivity");startActivity(intent);
第三种方式:
Intent intent = new Intent()intent.setComponent(new ComponentName(this,OtherActivity.class));startActivity(intent);
第四种方式:
Intent intent = new Intent(this,OtherActivity.class);startActivity(intent);
第五种方式:
跨应用激活组件,依然使用setClassName 方法
第一个参数为package名,第二个参数是class名
Intent intent = new Intent();intent.setClassName("com.example.mulactivity", "com.example.mulactivity.OtherActivity"
4.通过Intent传递参数,也介绍两种方式。一个是单个添加,一个是批量添加
第一种方式:
类似map的方式,设置key和value
intent.putExtra("name", "zhangxiao");intent.putExtra("age",22);//对应接收:Intent intent = getIntent();//得到到激活它Intent对象String name = intent.getStringExtra("name");int age = intent.getIntExtra("age",0);
批量添加,使用Bundle对象。
Bundle bundle= new Bundle();//Mapbundle.putString("name","zhangxiao222");bundle.putInt("age", 22);intent.putExtras(bundle);//批量添加//对应接收:Bundle bundle = getIntent().getExtras();String name = bundle.getString("name");int age = bundle.getInt("age");//事实上,通过查看getExtras()源码:public Bundle getExtras() {return (mExtras != null)? new Bundle(mExtras): null; }//将返回一个Bundle对象
5.使用startActivityForResult(Intent intent, int requestCode) 向MainActivity返回数据
在OtherActivity中,使用setResult(int resultCode, Intent data)来返回数据,这里定义一个button,当点击button时设置数据返回并关闭当前Activity
public void otherActivityClose(View v){Intent data = new Intent();data.putExtra("result","hello zhangxiao");setResult(20,data);//返回码 和数据 this.finish();}
还不够,这个时候在MainActivity中要重写onActivityResult方法,针对不同的请求码和响应码做相应的业务处理。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stub//返回结果的位置if(resultCode ==20){String result = data.getStringExtra("result");Toast.makeText(this, result, Toast.LENGTH_LONG).show();}}
附:
MainActivity.java
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}//通过intent 激活组件(activity)附带数据public void openActivity(View v){//本应用激活组件/************第4种方法******************Intent intent = new Intent(this,OtherActivity.class);startActivity(intent);****************************************//*************第1种方法*********************** intent.setClass(this,OtherActivity.class);//设置要激活的组件startActivity(intent);****************************************************//**************第2种方法****************************intent.setClassName(this, "com.example.mulactivity.OtherActivity");startActivity(intent);****************************************************//**************第3种方法***************************** intent.setComponent(new ComponentName(this,OtherActivity.class));startActivity(intent);*****************************************************//***************跨应用激活组件的方法***************Intent intent = new Intent();intent.setClassName("com.example.mulactivity", "com.example.mulactivity.OtherActivity");startActivity(intent);***************************************************/Intent intent = new Intent();intent.setClassName("com.example.mulactivity", "com.example.mulactivity.OtherActivity");/***************** 第1种方法***************intent.putExtra("name", "zhangxiao");intent.putExtra("age",22);*********************************************//****************第2种方法********************************/Bundle bundle= new Bundle();//Mapbundle.putString("name","zhangxiao222");bundle.putInt("age", 22);intent.putExtras(bundle);//批量添加 startActivityForResult(intent, 200);//startActivity(intent);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stub//请求的位置,返回结果的位置if(resultCode ==20){String result = data.getStringExtra("result");Toast.makeText(this, result, Toast.LENGTH_LONG).show();}}}
OtherActivity.java
public class OtherActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.otheractivity);Bundle bundle = getIntent().getExtras();String name = bundle.getString("name");int age = bundle.getInt("age");//Intent intent = getIntent();//得到到激活它Intent对象//String name = intent.getStringExtra("name");//int age = intent.getIntExtra("age",0);TextView textView=(TextView)this.findViewById(R.id.content);textView.setText("name:"+name+" age:"+age);}public void otherActivityClose(View v){Intent data = new Intent();data.putExtra("result","hello zhangxiao");setResult(20,data);//返回码 和数据 this.finish();}}
1 0
- Android多Activity简介
- android Activity简介
- android activity 生命周期简介
- [Android] Activity简介
- Android Activity 简介
- 【Activity】android:configChanges简介
- android基础activity简介
- [android]组件之一Activity简介
- Android Activity.startActivity流程简介
- Android之Activity生命周期简介
- Android四大组件---Activity简介
- Android Activity.startActivity流程简介
- Android Activity.startActivity流程简介
- Android之Activity生命周期简介
- Android Activity.startActivity流程简介
- Android--Activity简介及生命周期
- Android系统中的Activity简介
- Android——Activity简介
- 输入n个数,分别将这些数从大到小排列输出和从小到大排列输出
- NSURL 中的HTTP 中文乱码
- LintCode-剑指Offer-(40)用栈实现队列
- 基于winpcap的网络mac地址发现
- 优雅的浏览 man 手册页
- Android多Activity简介
- 黑马程序员——Java语言的基础语法总结(上)
- 南大软院大神养成计划--day05
- USB HID调试过程中碰到的一些问题
- windows7_64下Oracle客户端及PL/SQL安装
- 安全测试(1)
- POJ 1845-Sumdiv 数论 +快速幂&&筛素&&分解质因数&&求因数之和的模板
- 软件工程——从艺术走向科学
- Spring maven打包成jar和war