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回传一个/多个值,与回传消息内容。