Android Activity 生成及Activity之间传值

 

 Activity 是Android中重要的组件,每个Activity对应一个界面,如何生成新的Activity,如何在不同Activity传递数值呢。

一、

生成新的Activity,当然要使用Intent了,这里有两种方式。(注意:所有的Activity都要在AndroidMainfest.xml 中声明)

  1.使用显示的方式调用Intent

     我们在一个button事件中生成新的activity

    

 btn.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub

				Intent i = new Intent(MainActivity.this,SecondActivity.class);
				startActivity(i,88);
                            }
                 });

 

  2.使用隐式的形式

     通过声明action 来调用响应的Activity

    新的Activity需要在AndroidMainfest.xml 中 声明成这个样子:

   

        <activity android:name =".ThirdActivity">
            <intent-filter>
              <action android:name="www.example.com.myAction"/>
              <category android:name="android.intent.category.DEFAULT"></category>
            </intent-filter>
        </activity>

 调用代码:

Intent intent = new Intent();
intent.setAction("www.example.com.myAction");
startActivity(intent);

 其中的 <category> 标签必须要有的,添加一个 默认的。

 

二 、 数值的传递

  如果把calling Activity 称为 父 Activity的话,新生成的称为child Activity

  1.父向子传递数据,直接使用Intent的相关函数:

    intent.putExtra();

  在 Child Activity 中获取值:

    Intent intentGet = getIntent();

    intentGet.getStringExtra(); 

    .....等等函数获取相关类型的值。

 

 2.child Activity 向 父 Acitvity 中回传值

     需要使用两个系统函数来完成:

     生成child Activity 时使用:startActivityForResult()函数

   

Intent i = new Intent(MainActivity.this,SecondActivity.class);
			     
startActivityForResult(i,88);

 在父Activity中重新回调函数:public void onActivityResult(int requestCode,int resultCode,Intent data)

    

 当  child activity 调用finish() 函数结束生命后,返回父Activity自动调用onActivityResult()函数,

其中child activity 向回传的数据 通过 setResult() 函数设置。所有需要在finish()函数调用前,调用setResult() 完成回传值的设置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章