zoukankan      html  css  js  c++  java
  • 基于Intent实现Activity与Activity之间的数据传递,实现二个Activity的跳转功能

    在讲参数传递之前,先讲下intent的定义:

        Intent intent = new Intent(MainActivity.this,SecondActivity.class);  //这是显式定义

    如果是隐式定义,隐式Intent通过在AndroidManifest.xml中<activity>标签下配置<intent-filter>的内容,可以指定当前活动能够响应的action和category。

    <activity android:name=".SecondActivity" >

      <intent-filter>

            <action android:name="com.example.activitytest.ACTION_START" />

             <category android:name="android.intent.category.DEFAULT" />  

             <category android:name="com.example.activitytest.MY_CATEGORY"/>

       </intent-filter>

     </activity>

    1、静态变量传递数据:

    变量定义时一定要设置成public static,在第二个将打开的Activity进行定义,在第一个Activity对即将打开的Activity的静态变量进行赋值。

    (1)public class FirstActivity extends Activity {

    SecondActivity.ddd = 100;//设置静态变量传递的参数

    (2)public class SecondActivity extends Activity{

    public static int ddd;这里定义

    textview.setText("静态变量:"+ddd);这里获取第一个Activity传过来的ddd参数

    2、通过putExtra传递数据:

            putExtra(key,value);//携带参数发送到另一个页面

            String name = intent.getStringExtra(key);//获取传送过来的字符串

    下面是发送参数代码:

    Intent intent = new Intent(MainActivity.this, ShowActivity.class);//实例化一个inent                    

    intent.putExtra("name", "大家好");//为putExtra添加需要传递的参数

    startActivity(intent);

    下面是获取代码:

    Intent intent = getIntent();//获取一个intent对象

    String name = intent.getStringExtra("name");//获取传递过来的值

    textview.setText("putExtra传参:"+name);

    3、全局变量传递数据

    创建一个类继承Application在设置变量,并设置get方法获取变量的值

    在AndroidManifest.xml的application里面添加android:name=".Defind" //Defind为类名

    defind = (Defind) getApplication();//在使用的类里面通过getApplication获取全局变量类的对象

    这个方式支持开发者自己定义一个类来进行传参,但是该类需要在AndroidManifest.xml中声明出来,

    在AndroidManifest.xml的application里面添加android:name并给name赋值为类名,然后在类里面通过

    getApplication获取全局变量类的对象,再对该对象进行操作。

    4、数据包Bundle传递数据

    下面是参数发送代码:

    Bundle b = new Bundle();//创建Bundle对象

      b.putString('name','姓名');//往Bundle对象添加传递的参数

      b.putInt('age',1);//往Bundle对象添加传递的参数

      intent.putExtras(b);在intent里面添加Bundle对象

    下面是获取参数代码:

      Bundle data = intent.getExtras();//获取传递过来的Bundle对象

      data.getString('name');//通过Bundle对象的key获取值

      data.getInt('age');////通过Bundle对象的key获取值

  • 相关阅读:
    获取Tekla属性方式
    基于C# 百度AI和科大汛飞语音合成SDK
    BIM工程信息管理系统-EF实体框架数据操作基类
    BIM工程信息管理新系统- 系统管理模块
    EChart绘制风速风向曲线分析图
    BIM工程信息管理系统-详细设计
    BIM工程信息管理系统搭建-系统功能需求
    基于C# 调用百度AI 人脸识别
    mago3DJS 应用
    Bitnami redmine windows环境下升级
  • 原文地址:https://www.cnblogs.com/gszw/p/7680305.html
Copyright © 2011-2022 走看看