精华内容
下载资源
问答
  • Android中传递数据方法非常多,本次介绍4中比较常用的数据传递方法: 1.通过Intent传递数据 2.通过静态变量(static)传递数据 3.通过剪贴板(Clipboard)传递数据 4.通过全局对象传递数据 ...
  • 主要给大家总结介绍了关于Android Activity之间的数据传递方法,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
  • 本篇文章是对activity之间数据传递方法进行了详细的分析介绍,需要的朋友参考下
  • 主要介绍了Android基于Intent实现Activity之间数据传递方法,结合实例形式分析了Activity之间数据传递操作的相关技巧,代码备有较为详尽的注释,需要的朋友可以参考下
  • 安卓开发-Activity间数据传递和回传
  • 实验七 使用Intent在Activity间传输数据
  • Activity之间传递数据

    2016-03-14 17:54:13
    Activity之间传递数据
  • activityactivity利用接口相互传递数据,超简单
  • 2、 模拟淘宝登录界面 其中登录、收货地址管理等暂时用图片代替。 1、掌握StartActivity()启动其他Activity的方式 2、掌握两个Acitivity之间通过Intent传递信息。
  • 用broadcast两个activity之间传递数据,能保证application的UI保持不变,是当前activity的UI,接收数据的activity执行对应动作。
  • 主要介绍了Android中Service实时向Activity传递数据方法,实例分析了Service组件基于线程操作实现数值实时传递的相关技巧,需要的朋友可以参考下
  • 使用Intent Bundle在Activity间传递数据

    千次阅读 2014-03-15 20:09:02
    这里说一下Intent Bundle在Activity间传递数据 activity间传递数据方法又两种 1.直接通过intent:(intent本来就是activity间传递信息的eg:一个activity启动另一个activity)  intent对象的方法:...

    前面的帖子介绍过Bundle类:http://blog.csdn.net/zhangjikuan/article/details/20528653

    这里说一下Intent Bundle在Activity间传递数据

    activity间传递数据的方法又两种

    1.直接通过intent:(intent本来就是activity间传递信息的eg:一个activity启动另一个activity)

                 intent对象的方法:putExtra(string name ,Xxx value)//Xxx可为int long string array

                                                  getXxxExtra(string name )

                注:此方法是智能的,当intent携带bundle的时候调用此方法会直接把数据添加到bundle中

    2.通过intent和bundle:

                intent对象的方法putExtas( Bundle data)             Bundle getExtras()//返回的是bundle数据

               bundle对象的方法 putXxx(string  key,Xxx data);    putSerializable(string key ,Serializable data)//放入一个可序列化的对象

                                                getXxx(string key)                      getSerializable(string key ,Serializable)


    下面的例子是用一个activity显示并可输入注册信息,点击注册会将数据传送个另一个activity显示出来注册信息

    /**
     * 此文件是显示注册信息,并将注册信息通过Intent和bundle发送给ResultActivity
     */
    public class MainActivity extends Activity
    {
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button bn = (Button) findViewById(R.id.bn);
    bn.setOnClickListener(new OnClickListener()
    {
    public void onClick(View v)
    {
    EditText name = (EditText)findViewById(R.id.name);
    EditText passwd = (EditText)findViewById(R.id.passwd);
    RadioButton male = (RadioButton) findViewById(R.id.male);
    String gender = male.isChecked() ? "男 " : "女";
    Person p = new Person(name.getText().toString(), passwd      //person是自己定义的一个可序列化的接口
    .getText().toString(), gender);
    // 创建一个Bundle对象
    Bundle data = new Bundle();
    data.putSerializable("person", p);
    // 创建一个Intent
    Intent intent = new Intent(MainActivity.this,
    ResultActivity.class);
    intent.putExtras(data);

    // 启动intent对应的Activity
    startActivity(intent);
    }
    });
    }
    }

    **
     * 此activity文件是接收MainActivity文件传送过来的数据并显示
     */
    public class ResultActivity extends Activity
    {
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.result);
    TextView name = (TextView) findViewById(R.id.name);
    TextView passwd = (TextView) findViewById(R.id.passwd);
    TextView gender = (TextView) findViewById(R.id.gender);
    // 获取启动该Result的Intent
    Intent intent = getIntent();
    // 直接通过Intent取出它所携带的Bundle数据包中的数据
    Person p = (Person) intent.getSerializableExtra("person");

    name.setText("您的用户名为:" + p.getName());
    passwd.setText("您的密码为:" + p.getPass());
    gender.setText("您的性别为:" + p.getGender());
    }
    }

    /**
     *这是定义了一个可序列化的接口
     */
    public class Person implements Serializable
    {
    /**
    *
    */
    private static final long serialVersionUID = 1L;


    private Integer id;
    private String name;
    private String pass;
    private String gender;


    public Person()
    {
    }


    /**
    * @param name
    * @param pass
    * @param gender
    */
    public Person(String name, String pass, String gender)
    {
    this.name = name;
    this.pass = pass;
    this.gender = gender;
    }
    public Integer getId()
    {
    return id;
    }
    public void setId(Integer id)
    {
    this.id = id;
    }
    public String getName()
    {
    return name;
    }
    public void setName(String name)
    {
    this.name = name;
    }
    public String getPass()
    {
    return pass;
    }
    public void setPass(String pass)
    {
    this.pass = pass;
    }
    public String getGender()
    {
    return gender;
    }
    public void setGender(String gender)
    {
    this.gender = gender;
    }


    }


    最后注意在AndroidManifest文件中的配置

    展开全文
  • 利用广播Broadcast Receiver,2个不同的Activity传递数据
  • 本篇文章小编为大家介绍,Android 不同Activity间数据传递 Bundle对象的应用。需要的朋友参考下
  • 主要介绍了详解Android Activity之间切换传递数据方法 的相关资料,需要的朋友可以参考下
  • 利用SharedPreferences 2个不同的Activity传递数据 可以用做保存帐号的登录信息
  • Activity间数据传递与回传

    千次阅读 2019-08-06 20:59:16
    备注:此备注将会存在本人的每一条博客,将会定期更改 1、使用的软件是Android studio...一、Activity间数据传递 首先,创建两个Activity: MainActivity、Main2Activity 打开程序后,显示MainActivity , 点击B...

    备注:此备注将会存在本人的每一条博客,将会定期更改
    1、使用的软件是Android studio 版本是3.4.2
    2、开始学习安卓时间:2019/08/01
    3、由于是自学,所以我不一定是对的,请保持一定的怀疑态度。

    一、Activity间的数据传递
    首先,创建两个Activity: MainActivity、Main2Activity
    打开程序后,显示MainActivity , 点击Button 按钮后跳转到 Main2Activity ,同时传递一些数据过去
    就不放两个Activity的 xml 的代码了,拉一个按钮和几个textviwe放数据就行

    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btn1 = (Button) findViewById(R.id.btn_go_avtivity2);
    
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
    
                Intent intent = new Intent(MainActivity.this,Main2Activity.class);
    
                //传递一个对象
                UserInfo userinfo = new UserInfo();
                userinfo.userName="aer";
                userinfo.age=22;
                userinfo.gender=0;
                intent.putExtra("userInfo",userinfo);
    
                intent.putExtra("ex1","传过来的人物信息如下:");
    
                startActivityForResult(intent,100);
            }
        });
    }
    

    // onActivityResult可以接收传过来的数据

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    
        super.onActivityResult(requestCode, resultCode, data);
       
    
        //两个textview控件
        TextView paramsTextView1 = (TextView) findViewById(R.id.tv_reception);
        TextView paramsTextView2 = (TextView) findViewById(R.id.tv_reception2);
        
        //传过来的字符串,放进 paramsTextView1
        String backData = data.getStringExtra("back_data");
        paramsTextView1.setText(backData);
        //传过来的对象数据,放进 paramsTextView2
        UserInfo userinfo12 =(UserInfo) data.getSerializableExtra("back_UserInfo");
        paramsTextView2.setText("姓名:"+userinfo12.userName+",年龄"+userinfo12.age+",性别:"+userinfo12.gender);
    
    }
    

    }

    这是用来传递数据的对象,对象需要继承Serializable 类 java序列化应该有学过吧
    当然,也可以继承Parceable 就比较麻烦,我也没学会呢

    import java.io.Serializable;

    public class UserInfo implements Serializable {

        public String userName;
    
        public int age;
    
        public int gender;
    

    }

    MainActivity的代码如上,从Main2Activity回传的数据要在重写的onActivityResult里面接收
    需要注意的是打开方式,一般使用 startActivity(intent); 打开一个新Activity ,但是由于要向打开的Activity传递数据,所以我的打开方式是 startActivityForResult(intent,100); 第二个参数100是requestCode的值,具体作用可以另行查找。

    Main2Activity代码如下:

    public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
    
    
        TextView paramsTextView1 = (TextView) findViewById(R.id.tv_params);
        TextView paramsTextView2 = (TextView) findViewById(R.id.tv_params2);
        TextView paramsTextView3 = (TextView) findViewById(R.id.tv_params3);
    
        Intent intent = new Intent();
        intent.putExtra("back_data","这是一段回传的数据");
        setResult(RESULT_OK,intent);            //RESULT_OK  =  -1
    
        //接收数据
    
        String newtext = getIntent().getStringExtra("ex1");
        paramsTextView1.setText(newtext);
    
        UserInfo userinfo = (UserInfo) getIntent().getSerializableExtra("userInfo");
        paramsTextView2.setText("姓名:"+userinfo.userName+",年龄"+userinfo.age+",性别:"+userinfo.gender);
    
        //更改传过来的信息,并尝试在页面关闭时传回给MainActivity
    
        userinfo.age=55;
    
        Intent intent2 = new Intent();
        intent2.putExtra("back_UserInfo",userinfo);
        setResult(RESULT_OK,intent2);
    
    }
    

    }

    接收了来自MainActivity的数据,同时在关闭本Activity的时候,会回传数据给MainActivity

    (备注:修改时间2019/8/19){
    此处的Main2Activity,在打开窗口的时候,就已经接接收了数据,并马上修改后传递了数据,并不是关闭的时候才回传。
    如果要设置关闭之后再回传数据,要重写onBackPressed()方法,在里面写入代码,添加返回数据的逻辑。

    }

    此处的最后一行 setResult(RESULT_OK,intent2);
    这个RESULT_OK 作用具体我也不是很十分清楚,是我的一个疑点

    在这里插入了一张图片,不知道能不能行
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • Android activity间数据传递,选择头像。Android activity间数据传递,选择头像。
  • Activity间数据传递

    2021-03-16 16:55:05
    Activity间数据传递是一个演示Android不同Activity间数据传递的例子,用到的控件很多EditText TextView SeekBar RadioGroup RadioButton ImageButton Button 都有涉及,属于最初级的例子,适合新手朋友了解学习...
  • 以不同方式实现了Activity之间的数据传递,并且当激活的activity在销毁时,主Activity可以得到返回的结果,适合初学者。
  • Android-Activity之间数据传递的多种方式. 不同模块(如Activity)经常会有各种各样的数据需要相互传递,我把常用的几种 方法都收集到了一起。它们各有利弊,有各自己的应用场景。
  • 实现Activity间传递任意数据 ##使用方式(从MainActivity跳转到OtherActivity,把MainActivity的当前对象传递到OtherActivity) ###MainActivity中: new StorageIntentCenter() .putExtra("iCommunicate", this) //...
  • 资源包括如何一个activity A里激活另一个activity B。 然后两个activity之间用handler传输数据在activity A里定义全局变量handler,用sendMessage来发数据handler里数据以消息队列的方式发送。
  • 关于Android Activity之间传递数据的6种方式

    万次阅读 多人点赞 2018-11-07 21:14:46
    第一个Activity中 ? 1 2 3 4 5 6 //创建意图对象  Intent intent = new Intent(this,TwoActivity.class);  //设置传递键值对  intent.putExtra("data&...

    使用Inten的putExtra传递

    第一个Activity中

    ?

    1

    2

    3

    4

    5

    6

    //创建意图对象

     Intent intent = new Intent(this,TwoActivity.class);

     //设置传递键值对

     intent.putExtra("data",str);

     //激活意图

     startActivity(intent);

    第二个Activity中

    ?

    1

    2

    3

    4

    5

    6

    // 获取意图对象

     Intent intent = getIntent();

     //获取传递的值

     String str = intent.getStringExtra("data");

     //设置值

     tv.setText(str);

    使用Intention的Bundle传递

    第一个Activity中

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    //创建意图对象

     Intent intent = new Intent(MainActivity.this,TwoActivity.class);

     //用数据捆传递数据

     Bundle bundle = new Bundle();

     bundle.putString("data", str);

     //把数据捆设置改意图

     intent.putExtra("bun", bundle);

     //激活意图

     startActivity(intent);

    第二个Activity

    ?

    1

    2

    3

    4

    5

    //获取Bundle

     Intent intent = getIntent();

     Bundle bundle = intent.getBundleExtra("bun");

     String str = bundle.getString("data");

     tv.setText(str);

    使用Activity销毁时传递数据

    第一个Activity中

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

      Intent intent = new Intent(MainActivity.this,TwoActivity.class);

      //用一种特殊方式开启Activity

     startActivityForResult(intent, 11);

    //设置数据

      

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

     super.onActivityResult(requestCode, resultCode, data);

     String str = data.getStringExtra("data");

     tvOne.setText(str);

    }

    第二个activity中

    ?

    1

    2

    3

    4

    5

    6

    //设置返回的数据

     Intent intent = new Intent();

     intent.putExtra("data", edtOne.getText().toString().trim());

     setResult(3, intent);

     //关闭当前activity

     finish();

    SharedPreferences传递数据

    第一个Activity中

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    SharedPreferences sp = this.getSharedPreferences("info", 1);

     //获取sp编辑器

     Editor edit = sp.edit();

     edit.putString("data", str);

     edit.commit();

     //创建意图对象

     Intent intent = new Intent(MainActivity.this,TwoActivity.class);

     //激活意图

     startActivity(intent);

    第二个Activity中

    ?

    1

    2

    3

    SharedPreferences sp = this.getSharedPreferences("info", 1);

     //设置数据

     tv.setText(sp.getString("data", ""));

    使用序列化对象Seriazable

    工具类

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    import java.io.Serializable;

    class DataBean implements Serializable {

     private String name;

     private String sex;

     public String getName() {

     return name;

     }

     public void setName(String name) {

     this.name = name;

     }

     public String getSex() {

     return sex;

     }

     public void setSex(String sex) {

     this.sex = sex;

     }

    }

    第一个Activity

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    //创建意图

     Intent intent = new Intent(MainActivity.this,TwoActivity.class);

     DataBean bean = new DataBean();

     //通过set方法把数据保存到DataBean对象中

     bean.setName("啦啦");

     bean.setSex("男");

     intent.putExtra("key", bean);

     startActivity(intent);

    第二个Activity

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    Intent intent = getIntent();

     //反序列化数据对象

     Serializable se = intent.getSerializableExtra("key");

     if(se instanceof DataBean){

      //获取到携带数据的DataBean对象db

      DataBean db = (DataBean) se;

      tv.setText(db.getName()+"==="+db.getSex());

     }

    使用静态变量传递数据

    第一个Activity

    ?

    1

    2

    3

    4

    Intent intent = new Intent(MainActivity.this,TwoActivity.class);

      TwoActivity.name="牛逼";

      TwoActivity.str="你说";

      startActivity(intent);

    第二个Activity

    ?

    1

    2

    3

    4

    //静态变量

    protected static String name;

    protected static String str;

    tv.setText(str+name);

    展开全文
  • Activity向广播接收器传递数据很简单,只需要发送广播前将数据put进Intent中就行了。 广播接收器怎么向Activity传送数据?这里要用到接口,通过广播接收器里定义一个接口,然后让接收广播接收器数据的Activity...

    思路

    Activity向广播接收器传递数据很简单,只需要在发送广播前将数据put进Intent中就行了。

    广播接收器怎么向Activity传送数据?这里要用到接口,通过在广播接收器里定义一个接口,然后让接收广播接收器数据的Activity实现这个接口。先看下面的栗子,Activity发送一个广播,然后广播接收器返回一个字符串。

    具体案例

    Activity 布局文件

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="com.nangch.broadcastreceivertest.MainActivity">
    
        <TextView
            android:id="@+id/tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="hello" />
    
        <Button
            android:id="@+id/btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="发送广播"/>
    </LinearLayout>
    

    Activity代码

    import android.content.Intent;
    import android.content.IntentFilter;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    
    public class MainActivity extends AppCompatActivity implements MyReceiver.Message{
    
        TextView tv;
        MyReceiver myReceiver;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //注册广播接收器
            myReceiver = new MyReceiver();
            IntentFilter intentFilter = new IntentFilter();
            intentFilter.addAction("com.nangch.broadcasereceiver.MYRECEIVER");
            registerReceiver(myReceiver, intentFilter);
    
            //因为这里需要注入Message,所以不能在AndroidManifest文件中静态注册广播接收器
            myReceiver.setMessage(this);
    
            tv = (TextView) findViewById(R.id.tv);
            Button btn = (Button) findViewById(R.id.btn);
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent("com.nangch.broadcasereceiver.MYRECEIVER");
                    intent.putExtra("hello", tv.getText());         //向广播接收器传递数据
                    sendBroadcast(intent);      //发送广播
                }
            });
        }
    
        @Override
        public void getMsg(String str) {
            //通过实现MyReceiver.Message接口可以在这里对MyReceiver中的数据进行处理
            tv.append(str);
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            unregisterReceiver(myReceiver);     //注销广播接收器
        }
    }
    

    广播接收器代码

    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.widget.Toast;
    
    public class MyReceiver extends BroadcastReceiver {
        private Message message;
    
        @Override
        public void onReceive(Context context, Intent intent) {
            //接收MainActivity传过来的数据
            Toast.makeText(context, intent.getStringExtra("hello"), Toast.LENGTH_SHORT).show();
    
            //调用Message接口的方法
            message.getMsg(" world");
        }
    
        interface Message {
            public void getMsg(String str);
        }
    
        public void setMessage(Message message) {
            this.message = message;
        }
    }
    

    在 MyReceiver 中定义一个 Message 接口,并声明一个 Message 类型的成员变量 message。然后让 MainActivity实现这个接口,并调用 setMessage 方法将 MainActivity 注入,这样 MainActivity 实例就成了 Myreceiver 的成员变量 message,这样就能处理 MyReceiver 中的数据了。这种思想和我们学习 Android 时设置按钮监听器的思想差不多,仔细想一下还是很好理解的。

    引用

    本文转载自 https://www.cnblogs.com/nangch/p/5353563.html ,感谢原作者的整理。

    展开全文
  • Activity之间传递数据的三种方式详解

    千次阅读 2017-09-09 00:58:10
    Activity:一、什么是Activity? 简单的说:Activity就是布满整个窗口...一个应用程序中通常由多个Activity构成,都会Manifest.xml中指定一个主的Activity,如下设置当程序第一次运行时用户就会看这个Activity,这
  • 博客地址:http://blog.csdn.net/zhouhui520w/article/details/47803891
  • 新手自定义AlertDialog上的疑问笔者猜测主要有两个: 1、自定义的layout如何放到AlertDialog中? 解答: 获取到layout的view之后,直接调用AlertDialog.Builder的setView方法即可。 2、如何对自定义AlertDialog中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 105,405
精华内容 42,162
关键字:

在activity间传递数据的方法