源码下载:

https://download.csdn.net/download/qq_31939617/10487527 下载

Android Intent多种传值方式

MainActivity.class

package com.example.sz.intentdemo;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.KeyEvent;import android.view.View;import android.widget.Button;import android.widget.TextView;import java.io.Serializable;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private Button btn1, btn2, btn3, btn4, btn5, btn6, btn7;    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tv = findViewById(R.id.tv_result);        btn1 = findViewById(R.id.btn_1);        btn2 = findViewById(R.id.btn_2);        btn3 = findViewById(R.id.btn_3);        btn4 = findViewById(R.id.btn_4);        btn5 = findViewById(R.id.btn_5);        btn6 = findViewById(R.id.btn_6);        btn7 = findViewById(R.id.btn_7);        btn1.setOnClickListener(this);        btn2.setOnClickListener(this);        btn3.setOnClickListener(this);        btn4.setOnClickListener(this);        btn5.setOnClickListener(this);        btn6.setOnClickListener(this);        btn7.setOnClickListener(this);    }    @Override    public void onClick(View view) {        switch (view.getId()) {            case R.id.btn_1://intent传值                Intent intent1 = new Intent(this, OneActivity.class);                intent1.setAction("one");                intent1.putExtra("key1", "123");                startActivity(intent1);                break;            case R.id.btn_2://bundle传值                Intent intent2 = new Intent(this, TwoActivity.class);                intent2.setAction("two");                Bundle bundle1 = new Bundle();                bundle1.putString("key2", "456");                intent2.putExtras(bundle1);     //将bundle传入intent中。                startActivity(intent2);                break;            case R.id.btn_3://startForResult传值                Intent intent3 = new Intent(this, ThreeActivity.class);                int code = 3;                startActivityForResult(intent3, code);                break;            case R.id.btn_4://相邻两个以上的activty之间的传值                Intent intent = new Intent(this, FourActivity.class);                Constant.result = "101";                startActivity(intent);                break;            case R.id.btn_5:                Intent intent5 = new Intent(this, FiveActivity.class);                Bundle bundle = new Bundle();                // Serializable传递对象                MyData1 data1 = new MyData1();                data1.setResult1("123456");                bundle.putSerializable("ser_key", data1);                intent5.putExtra("ser_type", "ser_type");                intent5.putExtras(bundle);                startActivity(intent5);                break;            case R.id.btn_6:                Intent intent6 = new Intent(this, SixActivity.class);                Bundle bundle6 = new Bundle();                // Parcelable传递对象                MyData2 data2 = new MyData2();                data2.setResult2("7890");                // Bundle有putParcelableArray和putParcelableArrayList方法,也就可以传递数组和列表                bundle6.putParcelable("par_key", data2);                intent6.putExtra("par_type", "par_type");                // Intent也有putParcelableArrayListExtra方法,可以传递实现Parcelable接口的对象列表                intent6.putExtras(bundle6);                startActivity(intent6);                break;            case R.id.btn_7:                List>list= new ArrayList<>();                Mapmap = new HashMap<>();                map.put("key7","1234567");                list.add(map);               // 传送方:                Intent intent7 = new Intent(this, SevenActivity.class);                Bundle bundle7 = new Bundle();                bundle7.putSerializable("list", (Serializable) list);                intent7.putExtras(bundle7);                startActivity(intent7);                break;            default:                break;        }    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        if (requestCode == 3 && resultCode == 33) {            String result = data.getStringExtra("key3");            tv.setText(result);        }    }    @Override    public boolean dispatchKeyShortcutEvent(KeyEvent event) {        if (event.getKeyCode() == KeyEvent.KEYCODE_MENU) {            return true;        }        return super.dispatchKeyShortcutEvent(event);    }}

OneActivity.class

package com.example.sz.intentdemo;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.widget.TextView;public class OneActivity extends AppCompatActivity {    private static final String TAG = "OneActivity";    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_one);        tv = findViewById(R.id.tv_result);        Intent intent = getIntent();        String action = intent.getAction();        if(action.equals("one")){            String result = intent.getStringExtra("key1");            Log.e(TAG, "onCreate: -----------OneActivity:"+result );            tv.setText(result);        }    }}

TwoActivity.class

package com.example.sz.intentdemo;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.TextView;public class TwoActivity extends AppCompatActivity {    private static final String TAG = "TwoActivity";    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_two);        tv = findViewById(R.id.tv_result);        Intent intent = getIntent();        String action = intent.getAction();        if (action.equals("two")) {            Bundle bundle = intent.getExtras();            String result = bundle.getString("key2");            tv.setText(result);        }    }}

ThreeActivity.class

package com.example.sz.intentdemo;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.TextView;public class ThreeActivity extends AppCompatActivity {    private static final String TAG = "TwoActivity";    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_two);        tv = findViewById(R.id.tv_result);        Intent intent = getIntent();        intent.putExtra("key3","789");        setResult(33,intent);        finish();    }}

FourActivity.class

package com.example.sz.intentdemo;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.TextView;public class FourActivity extends AppCompatActivity {    private static final String TAG = "OneActivity";    private static TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_four);        tv = findViewById(R.id.tv_result);        String result = Constant.result;        tv.setText(result);    }}

FiveActivity.class

package com.example.sz.intentdemo;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.widget.TextView;public class FiveActivity extends AppCompatActivity {    private static final String TAG = "FiveActivity";    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_five);        tv = findViewById(R.id.tv_result);        StringBuffer sb = new StringBuffer();        String type = getIntent().getStringExtra("ser_type");        Log.e(TAG, "onCreate: -----------------"+type );        // 根据type判断是哪种类型        if (type.equals("ser_type")) {            // 获取Serializable对象            MyData1 data1 = (MyData1) getIntent().getSerializableExtra("ser_key");           // sb.append("----From Serializable----").append("\n");           // sb.append("result1:").append(data1.getResult1()).append("\n");            sb.append(data1.getResult1()).append("\n");            Log.e(TAG, "onCreate: -----------FiveActivity:" + sb.toString());            tv.setText(sb.toString());        }    }}

SixActivity.class

package com.example.sz.intentdemo;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.widget.TextView;public class SixActivity extends AppCompatActivity {    private static final String TAG = "SixActivity";    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_six);        tv = findViewById(R.id.tv_result);        // 获取Parcelable对象        MyData2 data2 = (MyData2) getIntent().getParcelableExtra("par_key");        StringBuffer sb = new StringBuffer();        //sb.append("----From Parcelable----").append("\n");        //sb.append("result:").append(data2.getResult2()).append("\n");        sb.append(data2.getResult2()).append("\n");        Log.e(TAG, "onCreate: -----------SixActivity:" + sb.toString());        tv.setText(sb.toString());    }}

SevenActivity.class

package com.example.sz.intentdemo;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.widget.TextView;import java.util.List;import java.util.Map;public class SevenActivity extends AppCompatActivity {    private static final String TAG = "SevenActivity";    private TextView tv;    private String result;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_seven);        tv = findViewById(R.id.tv_result);        //接收方:        Bundle bundle = this.getIntent().getExtras();        List> list = (List>) bundle                .getSerializable("list");        for(int i =0;i"key7");        }        Log.e(TAG, "onCreate: -----------SevenActivity:" + result.toString());        tv.setText(result.toString());    }}

MyData1.class

package com.example.sz.intentdemo;import java.io.Serializable;/** * Created by ThinkPad_2 on 2018/6/10. * 

* 第一步:定义序列化实体类; *

* Serializable方式: * * * 1、File -> Settings... -> Editor -> Inspections -> Serialization issues[在java类目下] -> Serializable class without 'serialVersionUID'(选中) 2、进入实现了Serializable中的类,选中类名,Alt+Enter弹出提示,然后直接导入完成 */public class MyData1 implements Serializable { private static final long serialVersionUID = -1234678274486715979L; public String getResult1() { return result1; } public void setResult1(String result1) { this.result1 = result1; } /** * serialVersionUID的作用是在修改实体类后,可以正常的序列化和反序列化,在此不多说,大家可以谷歌百度下。 */ private String result1;}

MyData2.class

package com.example.sz.intentdemo;import android.os.Parcel;import android.os.Parcelable;/** * Created by ThinkPad_2 on 2018/6/10. * Parcelable方式: */public class MyData2 implements Parcelable {    private String result2;    public String getResult2() {        return result2;    }    public void setResult2(String result2) {        this.result2 = result2;    }    /**     * 序列化实体类     */    public static final Parcelable.Creator CREATOR = new Creator() {        public MyData2 createFromParcel(Parcel source) {            MyData2 data2 = new MyData2();            data2.result2 = source.readString();            return data2;        }        public MyData2[] newArray(int size) {            return new MyData2[size];        }    };    @Override    public int describeContents() {        return 0;    }    @Override    public void writeToParcel(Parcel parcel, int i) {        parcel.writeString(result2);    }}

Constant.class

package com.example.sz.intentdemo;public class Constant {    public static String result;}

源码下载:

https://download.csdn.net/download/qq_31939617/10487527 下载

更多相关文章

  1. Android隐藏软件盘
  2. android 拖动图片移动效果
  3. Android(安卓)zip文件压缩解压缩
  4. Android进度条学习一
  5. 【Android(安卓)Dev Guide - 02】 - Application Fundamentals
  6. Android中SQLite增删改查的方法(Android开发视频讲座)
  7. android webview 添加内置对象
  8. android WebView结合javascript相互调用
  9. Android(安卓)获取设备宽高分辨率

随机推荐

  1. Linux服务器权限管理实践——添加用户只
  2. 《深入理解Linux网络技术内幕》阅读笔记(
  3. Linux Tcp/ip UDP基本概念(6.8)
  4. Codeigniter2.25部署Linux(php5.6)
  5. 在Linux上确定陈旧的Samba挂载的最快方法
  6. Linux无法连接网络解决方案
  7. Linux环境下注册函数的调用顺序
  8. 浅谈如何学习linux
  9. 软交换FreeSWITCH系统概要和源代码分析预
  10. linux终端常用快捷键