源码下载:

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 创建与解析XML(三)—— Sax方式(源码)
  2. android webview 添加内置对象
  3. Android BroadcastReceiver两种注册方式区别
  4. Android Post方法请求URL 迭代器
  5. 设置android全屏的两种方式
  6. android 创建快捷方式 删除快捷方式 不重复判断快捷方式
  7. android LayoutInflater三种获取方式
  8. Android DEX方法超过64K和gradle编译OOM解决方案
  9. android使用两种方式注册receiver

随机推荐

  1. Android(安卓)Fresco属性大全,中文说明
  2. Android·性能分析systrace报错
  3. Android(安卓)不依赖activity的全局悬浮
  4. 修改android桌面图标默认大小
  5. android 笔记 --- Android(安卓)Bitmap
  6. android 整合 maven 环境
  7. Android(安卓)API 实验记录(一)
  8. Android(安卓)EditText 代码实现键盘弹出
  9. Android(安卓)Interface Definition Lang
  10. Android(安卓)之 EditText属性用法介绍