栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

通过Parcelable将对象传递到上一个Activity

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过Parcelable将对象传递到上一个Activity

我们先用一个点击注册,然后注册完之后,把用户名和密码都传送到登录页的例子。

写User这个类

package com.example.gogearsrunapplication.bean;

import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;

public class User implements Parcelable {
    private String id ;
    private String username ;
    private String password;
    private String userIntro;
    private Boolean angelMode;
    private String userIcon;
    public User(){

    }


    protected User(Parcel in) {
        id = in.readString();
        username = in.readString();
        password = in.readString();
        userIntro = in.readString();
        byte tmpAngelMode = in.readByte();
        angelMode = tmpAngelMode == 0 ? null : tmpAngelMode == 1;
        userIcon = in.readString();
    }

    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
        @Override
        public User createFromParcel(Parcel source) {
            User user = new User();
            user.id = source.readString();
            user.username = source.readString();
            user.password = source.readString();
            user.userIntro = source.readString();
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
                user.angelMode = source.readBoolean();
            }
            user.userIcon = source.readString();

            return user;
        }

        @Override
        public User[] newArray(int size) {
            return new User[size];
        }
    };

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(id);
        dest.writeString(username);
        dest.writeString(password);
        dest.writeString(userIntro);
        dest.writeByte((byte) (angelMode == null ? 0 : angelMode ? 1 : 2));
        dest.writeString(userIcon);
    }
}

接下来写出这个Layout



    
    
    
    

接下来是Register的Layout:

layout:



    
    
    

MainActivity.java 的主代码:

package com.example.restryapplication;

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

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;


import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class MainActivity extends AppCompatActivity {

    @BindView(R.id.edt_user_name)
    EditText edtUserName;
    @BindView(R.id.edt_user_password)
    EditText edtUserPassword;
    @BindView(R.id.remember_password)
    CheckBox rememberPassword;
    @BindView(R.id.btn_login)
    Button btnLogin;
    @BindView(R.id.btn_register)
    Button btnRegister;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
    }

    @onClick({R.id.btn_login, R.id.btn_register})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.btn_login:
                break;
            case R.id.btn_register:
                Intent intent = new Intent(this,RegisterActivity.class);
                startActivityForResult(intent,1);
                break;
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode){
            case 1:
                if(resultCode == RESULT_OK) {
                    User user =data.getParcelableExtra("userName_password");
                   String userName = user.getUserName();
                   String password = user.getPassword();
                   edtUserName.setText(userName);
                   edtUserPassword.setText(password);



                }
                break;
            default:
        }
    }
}

RegisterActivity.java :

package com.example.restryapplication;

import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;

import androidx.appcompat.app.AppCompatActivity;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class RegisterActivity extends AppCompatActivity {

    @BindView(R.id.userName_register)
    EditText userNameRegister;
    @BindView(R.id.password_register)
    EditText passwordRegister;
    @BindView(R.id.submit_register)
    Button submitRegister;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        ButterKnife.bind(this);
    }

    @onClick(R.id.submit_register)
    public void onViewClicked() {
        String userName = userNameRegister.getText().toString();
        String password = passwordRegister.getText().toString();
        User user = new User();
        user.setUserName(userName);
        user.setPassword(password);
        Intent intent = new Intent(RegisterActivity.this,MainActivity.class);
        intent.putExtra("userName_password",user);
        setResult(RESULT_OK,intent);
        finish();

    }
}



完成!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/237179.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号