Android 组件系列之Activity的传值和回传值.docx
- 文档编号:2890320
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:16
- 大小:87.29KB
Android 组件系列之Activity的传值和回传值.docx
《Android 组件系列之Activity的传值和回传值.docx》由会员分享,可在线阅读,更多相关《Android 组件系列之Activity的传值和回传值.docx(16页珍藏版)》请在冰豆网上搜索。
Android组件系列之Activity的传值和回传值
Android组件系列-----Activity的传值和回传值
在这篇随笔里将讲解Activity的传值和回传值。
一、通过startActivity来进行Activity的传值
在Android中,如果我们要通过一个Activity来启动另一个Activity,可以使用startActivity(Intentintent)方法来传入一个Intent对象,这个Intent对象我们可以精确的指定我们需要跳转的Activity上,或者通过Intent对象来指定我们要完成的一个action操作。
①.通过setClass方法来指定我们要跳转的Activity
Intentintent=newIntent();
intent.setClass(MainActivity.this,SecondActivity.class);
②.通过setAction方法来我们要完成的一个action操作
Intentintent=newIntent();
intent.setAction("com.xiaoluo.android_intent.second");
通过这种方式可以来指定我们的Intent对象要完成某个操作,这个操作可以是启动一个Activity,我们可以在AndroidManifest.xml中在
android: name="com.xiaoluo.android_intent.SecondActivity" android: label="SecondActivity"> name="com.xiaoluo.android_intent.second"/> name="android.intent.category.DEFAULT"/>
这样我们的Intent对象,在启动时,就会找到名字为 com.xiaoluo.android_intent.second的
我们来看看如何在Activity对象中进行值的传递,也是通过Intent对象的各种putExtra方法来进行传递:
MainActivity:
publicclassMainActivityextendsActivity
{
privateButtonbutton;
@Override
protectedvoidonCreate(BundlesavedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button);
button.setOnClickListener(newButtonListener());
}
classButtonListenerimplementsOnClickListener
{
@Override
publicvoidonClick(Viewv)
{
//Intentintent=newIntent();
//intent.setClass(MainActivity.this,SecondActivity.class);
Intentintent=newIntent();
intent.setAction("com.xiaoluo.android_intent.second");
intent.putExtra("com.xiaoluo.android_intent.age",20); //第一个参数指定name,android规范是以包名+变量名来命名,后面是各种类型的数据类型
intent.putExtra("com.xiaoluo.android_intent.name","xiaoluo");
Bundlebundle=newBundle(); // Bundle的底层是一个HashMap bundle.putString("hello","world"); intent.putExtra("bundle",bundle); startActivity(intent); } } @Override publicbooleanonCreateOptionsMenu(Menumenu) { //Inflatethemenu;thisaddsitemstotheactionbarifitispresent. getMenuInflater().inflate(R.menu.main,menu); returntrue; } } SecondActivity: publicclassSecondActivityextendsActivity { privateTextViewtextView; privatefinalStringTAG="SecondActivity"; @Override protectedvoidonCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); textView=(TextView)findViewById(R.id.textView); //得到跳转到该Activity的Intent对象 Intentintent=getIntent(); intage=intent.getIntExtra("com.xiaoluo.android_intent.age",10); Stringname=intent.getStringExtra("com.xiaoluo.android_intent.name"); Bundlebundle=intent.getBundleExtra("bundle"); Stringworld=bundle.getString("hello"); Log.i(TAG,age+","+name+","+world); textView.setText(name+": "+age+","+world); System.out.println(intent); } } 在第二个Activity对象中,可以通过getIntent()方法来得到跳转到这个Activity的Intent对象,然后通过Intent对象的各种getXXExtra方法来得到我们的传过来的值。 AndroidManifest.xml文件如下: xmlversion="1.0"encoding="utf-8"? > android=" package="com.xiaoluo.android_intent" android: versionCode="1" android: versionName="1.0"> android: minSdkVersion="8" android: targetSdkVersion="18"/> android: allowBackup="true" android: icon="@drawable/ic_launcher" android: label="@string/app_name" android: theme="@style/AppTheme"> android: name="com.xiaoluo.android_intent.MainActivity" android: label="@string/app_name"> name="android.intent.action.MAIN"/> name="android.intent.category.LAUNCHER"/> android: name="com.xiaoluo.android_intent.SecondActivity" android: label="SecondActivity"> name="com.xiaoluo.android_intent.second"/> name="android.intent.category.DEFAULT"/> 这样我们就可以实现Activity直接的值的传递。 二、通过startActivityForResult方法来得到Activity的回传值 在一些情况下,我们通过Aactivity跳转到Bactivity上,这时希望Aactivtiy能从Bactivity上得到一些返回值,这个时候我们就不能使用startActivity方法了,而是使用startActivityForResult方法来完成我们的操作。 例如,我们希望完成下面一个功能,在MainActivity上,写上一个算术表达式,然后跳转到到第二个SecondActivity上,在这个Activity上将第一个Activity的表达式显示出来,然后我们可以输入我们的算术表达式结果,然后点击按钮,将这个结果值又返回给我们的MainActivity,并将结果填充到算术表达式中,具体看如下代码: activity_main.xml: android=" xmlns: tools=" android: layout_width="match_parent" android: layout_height="match_parent"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 组件系列之Activity的传值和回传值 组件 系列 Activity 回传值