关于Activity的页面跳转和数据回传案例

   日期:2020-10-29     浏览:84    评论:0    
核心提示:关于Activity的页面跳转和数据回传一,创建Activity首先创建2个空白的Activity如下图所示,可自动生成相应xml文件我这创建了 OneActivity 和 TwoActivity二,编写xml文件1,编写 activity_one.xml主要控件:在 界面1 中写一个按钮用来跳转到 界面2写一个EditText组件用来输入需要传递的数据 和 传递数据按钮再写一个TextView组件用来接收回传的数据代码展示<?xml version="1.0" encod

关于Activity的页面跳转和数据回传

一,创建Activity

首先创建2个空白的Activity
如下图所示,可自动生成相应xml文件
我这创建了 OneActivity 和 TwoActivity

二,编写xml文件

1,编写 activity_one.xml

主要控件:在 界面1 中写一个按钮用来跳转到 界面2
写一个EditText组件用来输入需要传递的数据 和 传递数据按钮
再写一个TextView组件用来接收回传的数据

代码展示

<?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" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".Activity.OneActivity">

    <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="界面1" />

    <Button android:id="@+id/one_b" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="oneToTwo" android:text="打开界面2" />

    <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="传递数据给Two" />

    <EditText android:id="@+id/et_input" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入数据" />

    <Button android:id="@+id/btn_one_send" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="传输数据到Two界面" />

    <TextView android:id="@+id/tv_one_show_Tow_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="回传的数据" />
</LinearLayout>

界面展示

2,编写 activity_two.xml

主要控件:写一个 TextView 组件用来显示界面1传递过来的数据
写一个 EditText 组件用来输入需要回传的数据 和 回传按钮

代码展示

<?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" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".Activity.TwoActivity">

    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="界面2" />

    <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="显示one界面传递的数据" />

    <TextView android:id="@+id/tv_intent_show" android:layout_width="wrap_content" android:layout_height="wrap_content" />

    <Button android:id="@+id/btn_Tow_to_one" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="回传数据给one界面" />

    <EditText android:id="@+id/et_Tow_back_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入回传数据" />

</LinearLayout>

界面展示

三,编写Activity

1,编写 OneActivity

代码展示

package com.example.myapplication.Activity;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.example.myapplication.R;

public class OneActivity extends AppCompatActivity { 
    private EditText input;
    private Button send;
    private TextView show;

    //xml中记得onClick
    public void oneToTwo(View View) { 
        //创建一个Intent意图对象
        Intent intent = new Intent(this, TwoActivity.class);
        //跳转
        startActivity(intent);
    }

    
    private void init() { 
        input = findViewById(R.id.et_input);
        send = findViewById(R.id.btn_one_send);
        show = findViewById(R.id.tv_one_show_Tow_text);

        //给传输数据到Two界面的
        按钮绑定事件
        send.setOnClickListener(new View.OnClickListener() { 
            @Override
            public void onClick(View v) { 
                //获取输入数据
                String text = input.getText().toString();
                //创建意图对象
                Intent intent = new Intent(OneActivity.this, TwoActivity.class);
                //保存数据
                Bundle bundle = new Bundle();
                bundle.putString("text", text);
                intent.putExtras(bundle);
                //跳转
                startActivityForResult(intent, 1);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { 
        super.onActivityResult(requestCode, resultCode, data);
        //处理回传数据
        if (requestCode == 1) { 
            if (resultCode == 2) { 
                //获取回传数据
                String msg = data.getStringExtra("msg");
                show.setText(msg);
            }
        }
    }

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

    }
}

2,编写 TwoActivity

代码展示

package com.example.myapplication.Activity;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import com.example.myapplication.R;

public class TwoActivity extends AppCompatActivity { 
    private TextView show;
    private Button TowtoOne;
    private EditText back;

    private void init() { 
        show = findViewById(R.id.tv_intent_show);
        TowtoOne = findViewById(R.id.btn_Tow_to_one);
        back = findViewById(R.id.et_Tow_back_text);
        //获取意图对象
        Intent intent = getIntent();
        //获取数据显示
        String text = intent.getStringExtra("text");
        show.setText(text);

        //数据回传
        //绑定按钮事件
        TowtoOne.setOnClickListener(new View.OnClickListener() { 
            @Override
            public void onClick(View v) { 
                //设置要回传的数据
                String msg = back.getText().toString();
                Intent data = new Intent();
                data.putExtra("msg", msg);
                //设置到结果码
                setResult(2, data);
                TwoActivity.this.finish();
            }
        });

    }

    @Override
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_two);
        init();
    }
}
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服