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