当前位置: 首页 > news >正文

个人可以建设农资网站吗建网站要花费多少钱

个人可以建设农资网站吗,建网站要花费多少钱,白酒招商网站大全,百度指数大数据分享平台Android中的Parcelable 接口 在Android中,Parcelable接口是用于实现对象序列化和反序列化的一种机制。它允许我们将自定义的Java对象转换成一个可传输的二进制数据流,以便在不同组件之间传递数据。通常在Activity之间传递复杂的自定义对象时&#xff0c…

Android中的Parcelable 接口

在Android中,Parcelable接口是用于实现对象序列化和反序列化的一种机制。它允许我们将自定义的Java对象转换成一个可传输的二进制数据流,以便在不同组件之间传递数据。通常在Activity之间传递复杂的自定义对象时,使用Parcelable接口比使用Java的Serializable接口更高效。

Parcelable接口的工作原理是通过将对象的数据拆分成原始数据类型,并在写入和读取时进行序列化和反序列化。这样可以避免使用Java的反射机制,提高了性能。

要实现Parcelable接口,首先需要让自定义的Java类实现Parcelable接口,并实现以下几个方法:

  1. writeToParcel(Parcel parcel, int flags): 将对象的数据写入Parcel对象,以进行序列化。在这个方法中,需要将对象的各个字段写入Parcel对象。

  2. createFromParcel(Parcel parcel): 从Parcel对象中读取数据,以进行反序列化。在这个方法中,需要读取Parcel中的数据,并将其设置为对象的各个字段。

  3. newArray(int size): 创建一个指定大小的对象数组,通常用于反序列化的过程。

接着,需要在类中添加一个静态的Parcelable.Creator对象,用于创建和反序列化对象。这个对象需要实现Parcelable.Creator接口,并实现以下方法:

  1. createFromParcel(Parcel parcel): 根据Parcel对象创建并返回对象实例。

  2. newArray(int size): 创建一个指定大小的对象数组。

最后,在类中添加一个public static final的Parcelable.Creator对象,以供系统使用。

下面是一个简单的示例,演示了如何在Android中实现Parcelable接口:

import android.os.Parcel;
import android.os.Parcelable;public class Student implements Parcelable {private String name;private int age;public Student(String name, int age) {this.name = name;this.age = age;}protected Student(Parcel in) {name = in.readString();age = in.readInt();}@Overridepublic void writeToParcel(Parcel dest, int flags) {dest.writeString(name);dest.writeInt(age);}@Overridepublic int describeContents() {return 0;}public static final Creator<Student> CREATOR = new Creator<Student>() {@Overridepublic Student createFromParcel(Parcel in) {return new Student(in);}@Overridepublic Student[] newArray(int size) {return new Student[size];}};
}

在这个例子中,我们创建了一个名为Student的类,实现了Parcelable接口。在writeToParcel方法中,我们将Student对象的name和age字段写入Parcel对象。在createFromParcel方法中,我们从Parcel对象中读取name和age字段,并创建一个新的Student对象。

通过实现Parcelable接口,我们可以在不同的Android组件之间传递Student对象,而不需要进行繁琐的序列化和反序列化操作。同时,Parcelable接口也比Serializable接口更高效,适用于在性能要求较高的场景下使用。

代码举例说明

当使用Parcelable接口时,我们可以将自定义的Java类对象传递给Android组件,例如Activity之间的传递。下面是一个简单的示例,展示如何实现Parcelable接口和在Activity之间传递自定义对象:

首先,创建一个名为Student的Java类,该类包含一些基本的字段和方法:

import android.os.Parcel;
import android.os.Parcelable;public class Student implements Parcelable {private String name;private int age;public Student(String name, int age) {this.name = name;this.age = age;}protected Student(Parcel in) {name = in.readString();age = in.readInt();}public String getName() {return name;}public int getAge() {return age;}@Overridepublic void writeToParcel(Parcel dest, int flags) {dest.writeString(name);dest.writeInt(age);}@Overridepublic int describeContents() {return 0;}public static final Creator<Student> CREATOR = new Creator<Student>() {@Overridepublic Student createFromParcel(Parcel in) {return new Student(in);}@Overridepublic Student[] newArray(int size) {return new Student[size];}};
}

接下来,在发送方的Activity中,我们创建一个Student对象并使用Intent将其传递给接收方的Activity:

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;public class SenderActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_sender);// 创建一个Student对象Student student = new Student("Alice", 20);// 使用Intent传递Student对象给ReceiverActivityIntent intent = new Intent(this, ReceiverActivity.class);intent.putExtra("student", student);startActivity(intent);}
}

最后,在接收方的Activity中,我们从Intent中获取传递过来的Student对象:

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;public class ReceiverActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_receiver);// 从Intent中获取传递过来的Student对象Student student = getIntent().getParcelableExtra("student");if (student != null) {// 使用Student对象的数据String name = student.getName();int age = student.getAge();// 在这里进行相关操作,例如显示学生信息}}
}

通过实现Parcelable接口,我们可以轻松地在Activity之间传递自定义的Student对象,而不需要进行额外的序列化和反序列化操作。在接收方的Activity中,我们可以获取传递过来的Student对象,并使用其中的数据进行相应的处理。这样,我们就实现了自定义对象的传递和使用。

http://www.yayakq.cn/news/815068/

相关文章:

  • 扬州大学第四届网站建设评比微信app下载安装官方版2022网址
  • 杭州煜灿网络科技有限公司网站开发抚州招聘网站建设
  • 企业网站建设客户需求调查问卷用网站做CAN总线通信好吗
  • 福建省效能建设网站最好的网站开发工具
  • 天水 网站建设招聘h5个人网站源码
  • 潮州网站搭建找谁HTML发布网站
  • 柳州网站推广最好的公司专业建设方案
  • 西咸新区建设环保网站网站建设公司的成本有哪些内容
  • 云平台网站开发1688拿货网
  • 做市场的逛的网站调查公司做网站需要备案吗
  • 济宁网站网站建设完成网站开发需要什么样技术
  • 做网站用php西安市住房和城乡建设局官网
  • 电影网站做cpadirectory wordpress
  • 手表电商网站专业网络推广公司排名
  • 给网站做seo诊断零售管理系统哪个软件好
  • 长沙百度网站推广优化汉口网站优化
  • 杭州餐饮团购网站建设渭南网站建设远景
  • 小学生摘抄新闻安阳企业网站优化外包
  • 如何做网站关键词动态和静态网站的区别
  • 跟京东类似的网站西安电商平台网站建设
  • 新手如何做网站创意设计服务是什么
  • 观澜小学网站建设wordpress数据库访问优化
  • 东营网站建设优化seo怎么去优化
  • 国外免费推广网站免费自己建网站
  • 网站开发用什么语言比较流行wordpress 查看用户密码
  • 给领导发网站建设可行性方案邮件怎么写中铁建设集团内网登录
  • 网站建设网上商城厦门建设局公维金网站
  • 临安建设规划局网站仪表东莞网站建设
  • 株洲网站排名优化价格搜狗推广做网站要钱吗
  • 东莞南城网站制作公司贵州住房和建设厅网站