精华内容
下载资源
问答
  • 使用intentPutExtra方法传入,用getExtra等方法获得数据 主类 Intent intent=new Intent(MainActivity.this,OtherActivity.class); intent.putExtra("name", "张三"); intent.putE...

    1.通用方法

    使用intent的PutExtra方法传入,用getExtra等方法获得数据

    主类

    Intent intent=new Intent(MainActivity.this,OtherActivity.class);
                    intent.putExtra("name", "张三");
                    intent.putExtra("age", 23);
                    intent.putExtra("address", "北京");
                    startActivity(intent);

    other类

            textView=(TextView) findViewById(R.id.msg);
            Intent intent=getIntent();
            int age=intent.getIntExtra("age", 0);
            String name=intent.getStringExtra("name");
            String address=intent.getStringExtra("address");        textView.setText("age--->>"+age+"name-->>"+name+"address-->>"+address);

     

    2.利用静态变量传递

    直接在主类中设置other类中的数据,进而实现主类到other类间的数据传递

    主类

    Intent intent=new Intent();
                    intent.setClass(MainActivity.this,OtherActivity.class);
                    OtherActivity.age=23;
                    OtherActivity.name="jack";
                    startActivity(intent);

    other类

    public class OtherActivity extends Activity{
        private TextView textView;
        public static String name;
        public static int age;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.other);
            textView=(TextView) findViewById(R.id.msg);
            textView.setText("-name-->>"+name+"-age-->>"+age);
        }
    }

     

    3.使用全局变量传递

    创建myApp继承Application,通过设置Application中的数据,在Activity中传递

    MyApp类

    package com.example.intent4;
    
    import android.app.Application;
    
    public class MyApp extends Application{
    
        public String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
        @Override
        public void onCreate() {
            super.onCreate();
            setName("张三");
        }
    }

    主类

    myApp=(MyApp) getApplication();
                    myApp.setName("jack");//修改之后的名称
                    Intent intent=new Intent(MainActivity.this,OtherActivity.class);
                    startActivity(intent);

    other类

    textView=(TextView) findViewById(R.id.msg);
            myApp=(MyApp) getApplication();
            textView.setText("-appname-->>"+myApp.getName());

     

    4.使用剪切板(不太会用)

     5.返回结果

    package com.example.intent5;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    //返回结果
    public class MainActivity extends Activity {
    
        private EditText one,two,result;
        private Button button;
        private final static int REQUESTCODE=1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            button=(Button) this.findViewById(R.id.calculate);
            one=(EditText) findViewById(R.id.one);
            two=(EditText) findViewById(R.id.two);
            result=(EditText) findViewById(R.id.result);
            button.setOnClickListener(new View.OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    int a=Integer.parseInt(one.getText().toString());
                    int b=Integer.parseInt(two.getText().toString());
                    Intent intent=new Intent(MainActivity.this,OtherActivity.class);
                    intent.putExtra("a", a);
                    intent.putExtra("b", b);
                    startActivityForResult(intent,REQUESTCODE);//可以返回结果
                }
            });
        }
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            //用于接受回传过来的值
            if(resultCode==2){
                if(requestCode==REQUESTCODE){
                    int three=data.getIntExtra("three", 0);
                    result.setText(String.valueOf(three));
                    
                }
            }
        }
        
        
    
    }
    package com.example.intent5;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    
    public class OtherActivity extends Activity {
    
        private Button button;
        private TextView textView;
        private EditText editText;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.other);
            button=(Button) this.findViewById(R.id.button1);
            textView=(TextView) this.findViewById(R.id.msg);
            editText=(EditText) findViewById(R.id.editText);
            Intent intent=getIntent();
            int a=intent.getIntExtra("a", 0);
            int b=intent.getIntExtra("b", 0);
            textView.setText(a+"+"+b+"="+"?");
            button.setOnClickListener(new View.OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    Intent intent=new Intent();
                    int three=Integer.parseInt(editText.getText().toString());
                    intent.putExtra("three", three);
                    //通过Intent对象返回结果,setResult方法
                    setResult(2, intent);
                    finish();//结束当前Activity的生命周期
                }
            });
        }
    
    }

    注意:返回结果主类需要调用startForRexult方法及onActivityResult(),判断请求码及结果码是否正确,other类要写setResult(2, intent); finish();

    转载于:https://www.cnblogs.com/Yvettey-me/p/4002370.html

    展开全文
  • 这里我要说明的是用intent和全局变量的方法jiagn 1使用intent传递数据


    在这里我要说明的是用intent和全局变量的方法将EditText中输入的文本传递到另一个activityTextView

    1使用intent传递数据

    首先在一个activity中设置一个EditText和一个Button利用监听事件来控制;另外在java文件中声明EditText和一个Button并将他们初始化;

    private EditText et1 = null; 

    Button bt = (Button) findViewById(R.id.button1);

     

     2)在onClick事件中

     Intent intent = new Intent();

    intent.setClass(this, FifthActivity.class);

    et1 = (EditText) findViewById(R.id.editText1);

    String et1String = et1.getText().toString();

    intent.putExtra("name",et1String);//name是前后传递的一个名称

    startActivity(intent);

     

    3)在要转到的activity

      private TextView textView4; 

    private String strname = null;  

    strname=getIntent().getStringExtra("name");  textView4.setText(strname);

     

    2使用全局变量传递数据

    全局变量必须从android.app.Application继承,首先新建一个MyAppclass文件,然后在AndroidManifest.xml中用android:name属性指定全局类名,否则系统不会自动创建全局变量的

    package="com.example.sde"

        android:versionCode="1"

        android:versionName="1.0" >

     

        <uses-sdk

            android:minSdkVersion="8"

            android:targetSdkVersion="21" />

     

        <application

            android:allowBackup="true"

            android:name=".MyApp"//类名

            android:icon="@drawable/ic_launcher"

            android:label="@string/app_name"

            android:theme="@style/AppTheme" >

            <activity

                android:name=".FistActivity"

                android:label="@string/app_name" >

                <intent-filter>

                    <action android:name="android.intent.action.MAIN" />

     

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

                </intent-filter>

            </activity> 

    然后在监听事件中可以

      MyApp myApp=(MyApp)getApplicationContext();  

    myApp.country = "美国";

      Intent intent = new Intent();  

    intent.setClass(ForthActivity.this, FifthActivity.class);  

    et1 = (EditText) findViewById(R.id.editText1);//et1参看intent中的代码  

    String et1String = et1.getText().toString(); 

     myApp.rename = et1String;  startActivity(intent);

    在要转向的activity

     MyApp myApp = (MyApp) getApplicationContext();//全局变量传递数据

    textView5.setText("myapp.country: "+ myApp.country+ myApp.rename +"\nmyapp.data.id:"+myApp.data.id+"\nmyapp.data.name"+ myApp.data.name);

    //countryrenameid均为MyApp中的定义

     


    
    
    展开全文
  • 两个activity间传递数据,我们通常的方法都是用Intent或者Bundle,捎上数据,但是里面似乎只有一些放置一些Java中已经有的数据类型,像String,int,double等,但如果要传递一个对象,就需要一些小技巧了: ...

    在两个activity间传递数据,我们通常的方法都是用Intent或者Bundle,捎上数据,但是里面似乎只有一些放置一些Java中已经有的数据类型,像String,int,double等,但如果要传递一个对象,就需要一些小技巧了:

    Bundle中有一个方法putSerializable,利用该对象就可以传递对象了,不过传递的对象要实现Serializable接口。

    例如要传递一个User对象,则示例代码如下: 
    User类 
    public class User implements Serializable {  
        //其他代码省略  
    }  
    
     Activity中关键代码 

     User user = new User();  
     Intent intent = new Intent(MyActivity.this,OthereActivity.class);  
     Bundle bundle = new Bundle();  
     bundle.putSerializable("user", user);  
     intent.putExtras(bundle);  
     startActivity(intent); 
    

     Activity之间通过Intent传递值,支持基本数据类型和String对象及它们的数组对象byte、byte[]、char、char[]、boolean、boolean[]、short、short[]、int、int[]、long、long[]、float、float[]、double、double[]、String、String[],还有实现Serializable、Parcelable接口的类对象。

     public class CustomeClass implements Serializable{  
           
         /** 
         *  
         */  
         private static final long serialVersionUID = -7060210544600464481L;  
     }

     Activity1中的关键代码

     CustomeClass cc = new CustomeClass();  
       
     Intent intent = new Intent(this, PersonInfo.class);  
     intent.putExtra("PERSON_INFO", cc);  
     startActivity(intent);  
    

     Activity2中的关键代码

     Intent intent = getIntent();  
     CustomeClass cc=(CustomeClass)intent.getSerializableExtra
    ("PERSON_INFO");  
    
     
    展开全文
  • 假如需要两个activity间传递数据,我们通常都是用Bundle,但是里面似乎只有一些放置一些Java中已经有数据类型,像String,int,double等,但如果要传递一个对象呢?不难发现Bundle中有一个方法putSerializable,...

    假如需要在两个activity间传递数据,我们通常都是用Bundle,但是里面似乎只有一些放置一些Java中已经有的数据类型,像String,int,double等,但如果要传递一个对象呢?不难发现Bundle中有一个方法putSerializable,利用该对象就可以传递对象了,不过传递的对象要实现Serializable接口。例如要传递一个User对象,则示例代码如下:
    User类

    Java代码 复制代码
    public class User implements Serializable {
        //其他代码省略
    }


    activity中关键代码

    Java代码 复制代码
    1. User user = new User();   
    2. Intent intent = new Intent(MyActivity.this,OthereActivity.class);   
    3. Bundle bundle = new Bundle();   
    4. bundle.putSerializable("user", user);   
    5. intent.putExtras(bundle);   
    6. startActivity(intent);  
    展开全文
  • 在Activity间传递的数据一般比较简单,但是有时候实际开发中也会传一些比较复杂的数据,本节一起来学习更多Activity间数据的传递方法。 1、通过 Intent 传递 我们在进行 Activity 跳转时,是要有 Intent,此时 ...
  • 在Activity间传递的数据一般比较简单,但是有时候实际开发中也会传一些比较复杂的数据,本节一起来学习更多Activity间数据的传递方法。 1、通过 Intent 传递 我们在进行 Activity 跳转时,是要有 Intent,此时 ...
  • Activity数据传递的四种方法: 1.Intent携带数据 intent.putExtra("key","VALUE"); VALUE可以是基本数据类型String和基本数据类型数组 第一个界面写入要传递的数据eg: 第二个界面...
  • 在activity间传递参数

    2020-01-14 21:53:31
    activity 间的数据传递 使用 intent extra 要启动的activity中获取要启动intent: 对于CheatActivity处理extra信息实现细节,QuizActivity和应用其他代码无需知道。因 此,我们可转而newIntent(…)方法中...
  • 在Activity间传递的数据一般比较简单,但是有时候实际开发中也会传一些比较复杂的数据,本节一起来学习更多Activity间数据的传递。 一、常用数据类型 在前面几节我们只学习了一些常用类型的数据传递,主要...
  • activity间的数据传递——使用intent extraQuizActivity和CheatActivity之间进行数据传递。使用以下语句返回值通知CheatActivity当前问题答案mQuestionBank[mCurrentIndex].isAnswerTrue()将该值作为extra信息...
  • 打开FromActivity,通过按钮以返回结果方式打开ToActivity,同时intent中加入数据ToActivity的onCreate方法中使用数据填充到TextView上。按返回按钮,将ToActivity数据传递给FromActivityonActivityResult...
  • 打开FromActivity,通过按钮以返回结果方式打开ToActivity,同时intent中加入数据, ToActivity的onCreate方法中使用数据填充到TextView上。 按返回按钮,将ToActivity数据传递给FromActivity...
  • 第一个页面使用Intent对象put方法传递的参数是:  intent .putExtra("KEY","VALUE");  参数一:表示是 key键, 我们将这个值像map一样存放标示 key 参数二:标示值 值类型是基本数据类型 ...
  • 思路:Activity与Fragment或者Fragment与Fragment之间的数据传递,依赖于Fragment所onAttached那一个Activity,并分别调用setArguments()和getArguments()两个方法 方法: 创建一个Bundle对象,将数据传递进去...
  • 若要额外调用另一个Activity的同时传递数据,那么就需要利用Android.os.Bundle对象封装数据的能力,将所需要传递的数据或参数通过Bundle来传递不同Intent之间的数据。而数据回传则需要重写onActivityResult()方法...
  • Activity间的数据传递 举例:MainActivity是已经打开Activity,这个界面打开第二个Activity,SecondActivtiy,如果是直接通过startActivity()方法打开,则不能通过回调方法进行数据传递,但通过...
  • Activity注册流程 1.创建layoutxml文件、Activity...2.在Activity的Java类中重写OnCreate方法,将layoutxml文件引入进去  setContentView(R.layout.Xxx); 3.在AndroidManifest.xml清单文件中注册这个Activit
  • 本节演示了父Activity跳转到子Activity后,...1)Activity这边,Activity跳转时调用startActivityForResult方法,然后重写onActivityResult()方法用于接收子Activity传回的数据。 2)Activity这边,调用s...
  • 作为android开发者大家都知道两个activity之间的跳转及数据的传递是通过intent和bundle来实现,intent下有挺多方法来协助我们实现连个activity间的交互,但有时我们需要传递的不单单只是一个简单的数据类型,而是...
  • 在Android开发过程中,经常要在Activity之间传递参数,使用Android系统提供的方法可以传递基本数据类型的变量,但有时候我们经常要传递一些复杂的数据类型或自定义的类,这种情况的参数无法直接传递,我们可以通过...
  • Android Activity间传递自定义类对象 博客分类:  Android AndroidOSRubyF#  有很多时候都需要不同Activity之间传递数据。  实现方法有很多,可以用Bundle来传递,也可以用给Intent用...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 180
精华内容 72
关键字:

在activity间传递数据的方法