Android Studio基础项目-两个Activity的Intent传值自定义类数据(如数据库数据读取)。

Posted 徐为波

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio基础项目-两个Activity的Intent传值自定义类数据(如数据库数据读取)。相关的知识,希望对你有一定的参考价值。

android Studio基础项目-两个Activity的Intent传值自定义类数据(如数据库数据读取)。

接本节https://blog.csdn.net/xwbk12/article/details/116090792?spm=1001.2014.3001.5501

步骤一:创建自定义类文件

创建自定义类User.class,并把这个类文件放到model下

步骤二:在自定义类User.class数据中添加自定义的数据

步骤三:对每个自定义数据的属性、方法添加

package com.xwb.userintent.model;

public class User {//在该自定义类放置自定义的部分数据
    private String name;
    private String password;
    private int age;

    public User(){

    }
    public User(String name,String password,int age){
        this.name = name;
        this.password = password;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

步骤四:重写toString的方法

package com.xwb.userintent.model;
/**JavaBean**/
public class User {//在该自定义类放置自定义的部分数据
    private String name;
    private String password;
    private int age;

    public User(){

    }
    public User(String name,String password,int age){
        this.name = name;
        this.password = password;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\\'' +
                ", password='" + password + '\\'' +
                ", age=" + age +
                '}';
    }
}

步骤五:使用自定义类方法

package com.xwb.userintent;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.renderscript.RenderScript;
import android.view.View;

import com.xwb.userintent.model.User;

import java.util.HashMap;
import java.util.Map;

public class MainActivity extends AppCompatActivity {
    public void tiaozhuan(View v){
        Intent intent = new Intent();//跳转意图
        //告诉意图,想从哪个界面跳转到哪里
        intent.setClass(MainActivity.this,MainActivity_sec.class);//跳转的源、目的

        //发送数据,java基本数据类型有8类,不支持Map类型。设置完数据后,需要到MainActivity_sec.activity中接收数据
        intent.putExtra("name","haha");
        intent.putExtra("age",20);//int型数据
        intent.putExtra("aihao",new String[]{"唱歌","打游戏"});

        //使用Bundle,发送数据
        Bundle bundle = new Bundle();//创建
        bundle.putInt("score",100);//设置score值为100
        bundle.putString("info","这里是Bundle传值");
        intent.putExtras(bundle);//关键处,把bundle值传给intent

        //传自定义数据,发送数据
        User user = new User("lidada","123456",40);
        intent.putExtra("user",user);

        startActivity(intent);//执行跳转
    }

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

因此需要去User.java中实现序列化的接口

package com.xwb.userintent.model;

import java.io.Serializable;

/**JavaBean**/
public class User implements Serializable {//在该自定义User类放置自定义的部分数据,大部分情况数据来源于自定义类,如:数据库也多用于此类
    private String name;
    private String password;
    private int age;

    public User(){

    }
    public User(String name,String password,int age){
        this.name = name;
        this.password = password;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\\'' +
                ", password='" + password + '\\'' +
                ", age=" + age +
                '}';
    }
}

步骤六:接受数据

package com.xwb.userintent;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

import androidx.appcompat.app.AppCompatActivity;

import com.xwb.userintent.model.User;

import java.io.Serializable;
import java.lang.reflect.Array;
import java.util.Arrays;

public class MainActivity_sec extends AppCompatActivity {

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

        //接收MainActivity的传过来的数据值,并保存到相应值中
        Intent intent = getIntent();
        int age = intent.getIntExtra("age",0);//接收第一个int型数据,没有就使用默认值0
        int score = intent.getIntExtra("score",0);//没有使用bundle时值为0,使用后为100,bundle接受数据
        String name = intent.getStringExtra("name");
        String[] aihao = intent.getStringArrayExtra("aihao");

        //自定义类User.class接收数据
        Serializable user = (User)intent.getSerializableExtra("user");

        Log.i("MainActivity_sec",age+"  显示年龄");
        Log.i("MainActivity_sec",score+"  显示分数");
        Log.i("MainActivity_sec",name+"   显示姓名");
        Log.i("MainActivity_sec", Arrays.toString(aihao));
        Log.i("MainActivity_sec",user.toString());//打印user自定义数据
    }
}

步骤七:运行APP

 

以上是关于Android Studio基础项目-两个Activity的Intent传值自定义类数据(如数据库数据读取)。的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio基础项目-两个Activity的Intent传值自定义类数据(如数据库数据读取)。

Android Studio基础项目-两个Activity的Intent传值自定义类数据(如数据库数据读取)。

Android Studio基础项目-两个Activity的Intent基本传值。配置运行安卓版本,去除深蓝色按钮,全屏展示APP运行。

Android Studio基础项目-两个Activity的Intent基本传值。配置运行安卓版本,去除深蓝色按钮,全屏展示APP运行。

Android Studio基础项目-两个Activity的Intent跳转与传值,并onActivityResult回传一个/多个值,与回传消息内容。

Android Studio基础项目-两个Activity的Intent跳转与传值,并onActivityResult回传一个/多个值,与回传消息内容。