zoukankan      html  css  js  c++  java
  • 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() 完成回传值的设置。

  • 相关阅读:
    Scribd每月共有超过两亿个访客、累积数亿篇以上的文件档案,Alexa全球排名200以内
    Archive.org:互联网档案馆
    《技术、沟通、协作,引发的思考》
    linux记事工具:RedNotebook Lifeograph Kontact ThotKeeper
    HTTP的请求头标签 If-Modified-Since
    meta标签 使用说明(http-equiv、refresh、seo)
    XX-net https://github.com/XX-net/XX-Net
    XScreenSaver强大的锁屏工具
    JavaScript data types and data structures
    Firefox disable search in the address bar
  • 原文地址:https://www.cnblogs.com/igoogleyou/p/androidguo.html
Copyright © 2011-2022 走看看