Android在多个Activity之间传递数据

版权声明:原创文章,未经允许,禁止转载! https://blog.csdn.net/weixin_36512652/article/details/83099191
创建三个Activity,分别负责登录、信息显示、信息修改功能
  • 登录界面布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#ffffff"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/img_logo"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="80dp"
        android:background="#ffffff"
        android:src="@drawable/alipay" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="40dp"
        android:background="#ffffff"
        android:orientation="vertical">

        <TextView
            android:id="@+id/account"
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:layout_marginLeft="1dp"
            android:layout_marginRight="20dp"
            android:gravity="center"
            android:text="账号"
            android:textSize="16sp"
            android:textStyle="bold" />

        <EditText
            android:id="@+id/login_et_user"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_toRightOf="@+id/account"
            android:background="#ffffff"
            android:hint="手机号/邮箱/淘宝会员名"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/fill_text"
            android:layout_width="match_parent"
            android:layout_height="10dp"
            android:layout_below="@+id/login_et_user" />

        <TextView
            android:id="@+id/password"
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:layout_below="@+id/fill_text"
            android:layout_marginLeft="1dp"
            android:layout_marginRight="20dp"
            android:gravity="center"
            android:text="密码"
            android:textSize="16sp"
            android:textStyle="bold" />

        <EditText
            android:id="@+id/login_et_password"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_below="@+id/fill_text"
            android:layout_toRightOf="@+id/password"
            android:background="#ffffff"
            android:hint="请输入登录密码"
            android:inputType="textPassword"
            android:textSize="16sp" />
    </RelativeLayout>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="20dp" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="2dp" />

    <Button
        android:id="@+id/bt_login"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginEnd="15dp"
        android:layout_marginStart="15dp"
        android:background="@drawable/shape"
        android:gravity="center"
        android:text="登录"
        android:onClick="forgetPwd"
        android:textColor="#ffffff"
        android:textSize="16sp" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ffffff">

        <Button
            android:id="@+id/forget_pwd"
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="25dp"
            android:background="@null"
            android:gravity="center"
            android:onClick="forgetPwd"
            android:text="忘记密码?"
            android:textColor="#FF4FC3F7"
            android:textSize="16sp" />

        <Button
            android:id="@+id/message_verify_code"
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:layout_alignParentRight="true"
            android:layout_marginRight="25dp"
            android:background="@null"
            android:gravity="center"
            android:paddingRight="0dp"
            android:text="短信验证码登录"
            android:textColor="#FF4FC3F7"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/fill_text2"
            android:layout_width="match_parent"
            android:layout_height="80dp"
            android:layout_below="@+id/message_verify_code" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_above="@+id/fill_text3"
            android:layout_centerHorizontal="true"
            android:background="@null"
            android:gravity="center"
            android:text="更多"
            android:textColor="#FF4FC3F7"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/fill_text3"
            android:layout_width="match_parent"
            android:layout_height="20dp"
            android:layout_alignParentBottom="true" />
    </RelativeLayout>
    
</LinearLayout>
  • 个人信息界面布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/user_img"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="80dp"
        android:background="#ffffff"
        android:src="@drawable/alipay" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="5dp" />

    <TextView
        android:id="@+id/username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:gravity="center"
        android:text="账号:" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="40dp"
        android:background="#ffffff"
        android:orientation="vertical">

        <TextView
            android:id="@+id/fill_text1"
            android:layout_width="match_parent"
            android:layout_height="2dp"
            android:layout_alignParentTop="true"
            android:background="#CFD8DC" />

        <TextView
            android:id="@+id/name"
            android:layout_width="60dp"
            android:layout_height="40dp"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/fill_text1"
            android:gravity="center"
            android:text="姓名"
            android:textSize="16sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/show_name"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_marginLeft="30dp"
            android:layout_toRightOf="@+id/name"
            android:background="#ffffff"
            android:gravity="center"
            android:hint="未填写"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/fill_text2"
            android:layout_width="match_parent"
            android:layout_height="2dp"
            android:layout_below="@+id/show_name"
            android:background="#CFD8DC" />

        <TextView
            android:id="@+id/phone"
            android:layout_width="60dp"
            android:layout_height="40dp"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/fill_text2"
            android:gravity="center"
            android:text="手机号"
            android:textSize="16sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/show_phone"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_below="@+id/fill_text2"
            android:layout_marginLeft="30dp"
            android:layout_toRightOf="@+id/phone"
            android:background="#ffffff"
            android:gravity="center"
            android:hint="未填写"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/fill_text3"
            android:layout_width="match_parent"
            android:layout_height="2dp"
            android:layout_below="@+id/show_phone"
            android:background="#CFD8DC" />

        <TextView
            android:id="@+id/email"
            android:layout_width="60dp"
            android:layout_height="40dp"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/fill_text3"
            android:gravity="center"
            android:text="邮箱"
            android:textSize="16sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/show_email"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_below="@+id/fill_text3"
            android:layout_marginLeft="30dp"
            android:layout_toRightOf="@+id/email"
            android:background="#ffffff"
            android:gravity="center"
            android:hint="未填写"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/fill_text4"
            android:layout_width="match_parent"
            android:layout_height="2dp"
            android:layout_below="@+id/show_email"
            android:background="#CFD8DC" />

        <TextView
            android:id="@+id/fill_text5"
            android:layout_width="match_parent"
            android:layout_height="10dp"
            android:layout_below="@+id/fill_text4"
            android:background="#ffffff" />

        <Button
            android:id="@+id/edit_person_info"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_below="@+id/fill_text5"
            android:layout_centerHorizontal="true"
            android:background="#039BE5"
            android:gravity="center"
            android:text="编辑个人信息"
            android:textColor="#ffffff" />
    </RelativeLayout>

</LinearLayout>
  • 修改信息界面布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="20dp"
        android:background="#ffffff"
        android:orientation="vertical">

        <TextView
            android:id="@+id/name"
            android:layout_width="60dp"
            android:layout_height="40dp"
            android:layout_alignParentLeft="true"
            android:gravity="center"
            android:text="姓名"
            android:textSize="16sp"
            android:textStyle="bold" />

        <EditText
            android:id="@+id/edit_name"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_marginLeft="30dp"
            android:layout_toRightOf="@+id/name"
            android:background="#ffffff"
            android:hint="请输入姓名"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/fill_text1"
            android:layout_width="match_parent"
            android:layout_height="20dp"
            android:layout_below="@+id/edit_name"
            android:background="#ffffff" />

        <TextView
            android:id="@+id/phone"
            android:layout_width="60dp"
            android:layout_height="40dp"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/fill_text1"
            android:gravity="center"
            android:text="手机号"
            android:textSize="16sp"
            android:textStyle="bold" />

        <EditText
            android:id="@+id/edit_phone"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_below="@+id/fill_text1"
            android:layout_marginLeft="30dp"
            android:layout_toRightOf="@+id/phone"
            android:background="#ffffff"
            android:hint="请输入手机号"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/fill_text2"
            android:layout_width="match_parent"
            android:layout_height="20dp"
            android:layout_below="@+id/edit_phone"
            android:background="#ffffff" />

        <TextView
            android:id="@+id/email"
            android:layout_width="60dp"
            android:layout_height="40dp"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/fill_text2"
            android:gravity="center"
            android:text="邮箱"
            android:textSize="16sp"
            android:textStyle="bold" />

        <EditText
            android:id="@+id/edit_email"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_below="@+id/fill_text2"
            android:layout_marginLeft="30dp"
            android:layout_toRightOf="@+id/email"
            android:background="#ffffff"
            android:hint="请输入邮箱"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/fill_text3"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:layout_below="@+id/edit_email"
            android:background="#ffffff" />

        <Button
            android:id="@+id/save_person_info"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_below="@+id/fill_text3"
            android:layout_centerHorizontal="true"
            android:background="#039BE5"
            android:gravity="center"
            android:text="保存个人信息"
            android:textColor="#ffffff" />
    </RelativeLayout>

</LinearLayout>
  • 登录Activity:
package com.youngpain.alipay;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

    private EditText username;
    private EditText password;
    private Button loginButton;
    private Button forgetButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //去除标题栏
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        //初始化
        init();

        //测试
        //forgetButton = findViewById(R.id.forget_pwd);
        //forgetButton.setOnClickListener(new View.OnClickListener() {
        //    @Override
        //    public void onClick(View v) {
        //        Toast.makeText(MainActivity.this, "通过setOnClickListener实现事件处理"
        //                , Toast.LENGTH_LONG).show();
        //    }
        //});
    }

    /**
     * 使用android:onClick="forgetPwd"实现事件处理
     *
     * @param view
     */
    public void forgetPwd(View view) {
        Toast.makeText(MainActivity.this, "忘记密码", Toast.LENGTH_LONG).show();
        //Toast.makeText(MainActivity.this, "通过android:onClick实现事件处理", Toast.LENGTH_LONG).show();
    }

    /**
     * 通过setOnClickListener实现事件处理
     */
    private void init() {
        //获取控件
        username = findViewById(R.id.login_et_user);
        password = findViewById(R.id.login_et_password);
        loginButton = findViewById(R.id.bt_login);
        //绑定监听事件
        loginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String name = username.getText().toString().trim();
                String pwd = password.getText().toString();
                if ("".equals(name) || "".equals(pwd)) {
                    Toast.makeText(MainActivity.this, "用户名或密码不能为空"
                            , Toast.LENGTH_SHORT).show();
                } else {
                    Intent intent = new Intent(MainActivity
                            .this, PersonInfoActivity.class);

                    //使用Bundle传递数据
                    Bundle bundle = new Bundle();
                    bundle.putString("username", name);
                    intent.putExtras(bundle);

                    //直接传递数据
                    //intent.putExtra("username", name);
                    startActivity(intent);
                }
            }
        });
    }

}
  • 个人信息显示Activity:
package com.youngpain.alipay;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;

public class PersonInfoActivity extends Activity {

    private TextView username;
    private TextView showName;
    private TextView showPhone;
    private TextView showEmail;
    private Button editInfo;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //去除标题栏
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.person_info);

        //初始化
        init();

        //接收登录页面传来的用户名并显示
        //使用Bundle获取数据
        String name = getIntent().getExtras().getString("username");
        //String name = getIntent().getStringExtra("username");
        username.setText("账号:" + name);
    }

    //重写onActivityResult方法获取上一个Activity传回来的数据
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (resultCode) {
            case 8:
                String name = data.getStringExtra("name");
                String phone = data.getStringExtra("phone");
                String email = data.getStringExtra("email");
                showName.setText(name);
                showPhone.setText(phone);
                showEmail.setText(email);
                break;
            default:
                break;
        }
    }

    //初始化
    private void init() {
        username = findViewById(R.id.username);
        showName = findViewById(R.id.show_name);
        showPhone = findViewById(R.id.show_phone);
        showEmail = findViewById(R.id.show_email);
        editInfo = findViewById(R.id.edit_person_info);
        editInfo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //获取EditPersonInfoActivity返回的数据
                startActivityForResult(new Intent(PersonInfoActivity.this
                        , EditPersonInfoActivity.class), 1);
            }
        });
    }

}
  • 修改信息Activity:
package com.youngpain.alipay;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;

public class EditPersonInfoActivity extends Activity {

    private EditText editName;
    private EditText editPhone;
    private EditText editEmail;
    private Button saveButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //去除标题栏
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.edit_person_info);

        //初始化
        init();
    }

    //初始化
    private void init() {
        editName = findViewById(R.id.edit_name);
        editPhone = findViewById(R.id.edit_phone);
        editEmail = findViewById(R.id.edit_email);
        saveButton = findViewById(R.id.save_person_info);
        saveButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //获取输入信息
                String name = editName.getText().toString().trim();
                String phone = editPhone.getText().toString().trim();
                String email = editEmail.getText().toString().trim();
                Intent intent = new Intent();
                intent.putExtra("name", name);
                intent.putExtra("phone", phone);
                intent.putExtra("email", email);
                Activity activity = EditPersonInfoActivity.this;
                //设置要返回的数据
                activity.setResult(8, intent);
                activity.finish();
            }
        });
    }

}
注意:在AndroidManifest.xml文件中添加跳转的Activity
 <application
     android:allowBackup="true"
     android:icon="@drawable/alipay"
     android:label="@string/app_name"
     android:roundIcon="@mipmap/ic_launcher_round"
     android:supportsRtl="true"
     android:theme="@style/AppTheme">
     <activity android:name=".MainActivity">
         <intent-filter>
             <action android:name="android.intent.action.MAIN" />

             <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
     </activity>
     <activity
         android:name=".PersonInfoActivity"
         android:label="个人信息" />
     <activity
         android:name=".EditPersonInfoActivity"
         android:label="编辑个人信息" />
 </application>
结果显示:

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

猜你喜欢

转载自blog.csdn.net/weixin_36512652/article/details/83099191