当前位置: 首页 > 面试题库 >

Android:如何对我的对象实施Parcelable?

周鸿运
2023-03-14
问题内容

我有一个ConstantData类,该类保存我的JSON索引,我需要在活动之间附加传递它们。但在此之前,我必须首先对此类的对象实现Parcelable。

我的问题是,如何在这里的类中声明对象并将每个对象放入变量中?

我是新手,现在我一无所有。谢谢。请随意在下面修改我的代码。

ConstantData.java

public class ConstantData{

       public static String project_title = "project title";
       public static String organization_title = "organization title";
       public static String keyword = "keyword";
       public static String short_code = "short code";
       public static String project_description = "description";
       public static String smallImageUrl = "smallImageUrl";
       public static String bigImageUrl = "bigImageUrl";
       public static String price= "price";
       public static String country= "country";



        public static ArrayList<Project> projectsList = new ArrayList<Project>();


        public int describeContents() {
            return 0;
        }

        public void writeToParcel(Parcel out, int flags) {
            out.writeString(project_title);
            out.writeString(organization_title);
            out.writeString(keyword);
            out.writeString(short_code);
            out.writeString(project_description);
            out.writeString(smallImageUrl);
            out.writeString(bigImageUrl);
            out.writeString(price);
            out.writeString(country);
        }

        public static final Parcelable.Creator<ConstantData> CREATOR
                = new Parcelable.Creator<ConstantData>() {
            public ConstantData createFromParcel(Parcel in) {
                return new ConstantData(in);
            }

            public ConstantData[] newArray(int size) {
                return new ConstantData[size];
            }
        };

        private ConstantData(Parcel in) {
            project_title = in.readString();
            organization_title = in.readString();
            keyword = in.readString();
            short_code = in.readString();
            project_description = in.readString();
            smallImageUrl = in.readString();
            bigImageUrl = in.readString();
            price = in.readString();
            country = in.readString();
        }
    }

如果我的问题不够清楚,您可以查找以下问题:如何使用Intent将对象从一个Android Activity发送到另一个AndroidActivity?

myParcelableObject在那儿写道,我只是不知道如何制作可包裹的物体。

编辑 Project.java

public class Project {

    public String project_title;
    public String organization_title;
    public String keyword;
    public String short_code;
    public String project_description;
    public String smallImageUrl;
    public String bigImageUrl;
    public String price;
    public String country;
 }

问题答案:

您需要实现Parcelable接口

public class ConstantData implements Parcelable {

    public void writeToParcel(Parcel out, int flags) {
        out.writeString(project_title);
    ....
        out.writeString(country);
        out.writeList(projectsList); // <<--
    }

    private ConstantData(Parcel in) {
        project_title = in.readString();
        ....
        country = in.readString();
        projectsList = in.readList();

我认为为了写作的projectsList工作,Project班级也需要实施Parcelable

例如,请参见此类。



 类似资料:
  • 问题内容: 我有一个仅包含属性的类,我想对其进行打包。我应该采取什么措施来获得这种行为? 我想避免使用。 问题答案: 您可以打开任何包装。这意味着您需要实现该方法,并返回一个迭代器。就您而言,这可能只是: 或者,您可以将您的班级设为an ,然后将需要执行;这是更多的工作,可能不值得付出。 根据我上面链接的问题,您还可以使用以下方法实现迭代:

  • 问题内容: 指针是仅用于实现Java参考变量还是实际上如何实现?以下是Java语言规范中的代码行 4.3.1对象对象是类实例或数组。引用值(通常只是引用)是指向这些对象的指针,还有一个特殊的空引用,它不引用任何对象。 这是否意味着一直都是指针? 问题答案: 在现代JVM中,引用被实现为地址。 回到HotSpot的第一个版本(对于“经典VM”来说更早一些),引用被实现为句柄。那是指向指针的固定指针。

  • 问题内容: 我正在创建一个JSON对象,其中添加了一个键和一个数组值。键和值的值都来自TreeSet,该树具有排序形式的数据。但是,当我在json对象中插入数据时,它会随机存储,没有任何顺序。当前是我的json对象: 我的代码是: 有什么方法可以将数据存储到while循环本身中的json对象中? 问题答案: 它与Google Gson API一起使用。试试看。

  • 我的应用程序使用张量流精简模型来检测上传图像中的对象。 因此,我需要在用户上传的图像上绘制对象的边界框。 这是我的activity_camera.xml上传图像的地方。 这里是我运行tflite模型的地方。(CameraActivity.java) 边界框的绘制不起作用,因为我需要先绘制画布。 为了从视图中获取画布对象,我需要在该视图中修改或创建什么?

  • 本文向大家介绍如何实现对象克隆?相关面试题,主要包含被问及如何实现对象克隆?时的应答技巧和注意事项,需要的朋友参考一下 实现 Cloneable 接口并重写 Object 类中的 clone() 方法。 实现 Serializable 接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆。

  • 带有同伴对象的简单示例类 值测试可以通过访问,但如何从MyClass的实例访问?如果我有,那么我如何从sample访问测试?不正确....有没有办法? Java,C++,python等都有很简单的解决方案...(我将为每个有帮助的is提供代码示例),我认为kotlin会有一个比使用Java更好的解决方案。 对于在没有对象实例(如工厂)的情况下访问类属性,kotlin companion objec