Intent的四种跳转( 1 显式跳转 ,2 隐式跳转 , 3 数据传递 , 4 数据回传)

1 显式跳转 ,2 隐式跳转 , 3 数据传递 , 4 数据回传

关键代码片段:

显式跳转:

Intent intent1=new Intent(MainActivity.this,Main2Activity.class); startActivity(intent1);

隐式跳转:

<intent-filter> <action android:name="sigh" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>//在manifest文件中注册你想要跳转的Activity

Intent intent2=new Intent(); intent2.setAction("sigh");//设置action动作和manifest文件中设置的一样 startActivity(intent2);

数据传递:

Intent intent3=new Intent(MainActivity.this,Main4Activity.class); intent3.putExtra("key","love");//要传递的数据以 {key: value}形式发送 startActivity(intent3);
接收方(Main4Activity)代码:
Intent intent=getIntent();
String data=intent.getStringExtra(“key”);
//接收方以key获取对应value

数据回传:

[发送方处理 发送请求码,及接收回传回来的数据双码是否符合后接收数据]

Intent intent4=new Intent(MainActivity.this,Main5Activity.class); startActivityForResult(intent4,1);
接收代码部分:

@Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode==1){
            if (resultCode==1){
                String string=data.getStringExtra("name");
                String string2=data.getStringExtra("age");
                textView_back.setText(string+":"+string2);
            }
        }
    }

[接收方处理 要回传的数据,发送返回码+数据]

		Intent intent=new Intent();
        intent.putExtra("name",name);//同样是以key 对应value的形式发送要回传的数据
        intent.putExtra("age",age);
        setResult(1,intent);
        finish();

做了个小demo整体归纳总结了一下:

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
数据回传:
在这里插入图片描述在这里插入图片描述
MainActivity代码:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button bun_xian;
    private Button bun_yin;
    private Button bun_data;
    private Button bun_databack;
    private TextView textView_back;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();

    }

    private void initView() {
        bun_xian = (Button) findViewById(R.id.bun_xian);
        bun_yin = (Button) findViewById(R.id.bun_yin);
        bun_data = (Button) findViewById(R.id.bun_data);
        bun_databack = (Button) findViewById(R.id.bun_databack);
        textView_back=(TextView)findViewById(R.id.txt_activity);
        bun_xian.setOnClickListener(this);
        bun_yin.setOnClickListener(this);
        bun_data.setOnClickListener(this);
        bun_databack.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.bun_xian:
                Intent intent1=new Intent(MainActivity.this,Main2Activity.class);
                startActivity(intent1);
                break;
            case R.id.bun_yin:
                Intent intent2=new Intent();
                intent2.setAction("sigh");
                startActivity(intent2);
                break;
            case R.id.bun_data:
                Intent intent3=new Intent(MainActivity.this,Main4Activity.class);
                intent3.putExtra("key","love");
                startActivity(intent3);
                break;
            case R.id.bun_databack:
                Intent intent4=new Intent(MainActivity.this,Main5Activity.class);
                startActivityForResult(intent4,1);
                break;
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode==1){
            if (resultCode==1){
                String string=data.getStringExtra("name");
                String string2=data.getStringExtra("age");

                textView_back.setText(string+":"+string2);
            }
        }
    }
}

布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
   android:orientation="vertical">

   <Button
       android:id="@+id/bun_xian"
       android:layout_width="match_parent"
       android:layout_height="0dp"
       android:layout_weight="1"
       android:onClick="click"
       android:text="显式意图跳转"/>
    <Button
        android:id="@+id/bun_yin"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:onClick="click"
        android:text="隐式意图跳转"/>
    <Button
        android:id="@+id/bun_data"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1.5"
        android:onClick="click"
        android:text="数据传递的跳转"/>
    <Button
        android:id="@+id/bun_databack"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:onClick="click"
        android:text="数据回传的跳转"/>
    <TextView
        android:id="@+id/txt_activity"
        android:textSize="55dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />


</LinearLayout>
  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值