Android中的可分包和继承

2024-02-06

我得到了一个适用于不涉及继承的单个类的 Parcelable 实现。在继承方面,我无法找出实现接口的最佳方法。假设我得到了这个:

public abstract class A {
    private int a;
    protected A(int a) { this.a = a; }
}

public class B extends A {
    private int b;
    public B(int a, int b) { super(a); this.b = b; }
}

问题是,这是为 B 实现 Parcelable 接口的推荐方法(在 A 中?在两者中?如何实现?)


这是我最好的解决方案,我很高兴听到有人对此有过想法。

public abstract class A implements Parcelable {
    private int a;

    protected A(int a) {
        this.a = a;
    }

    public void writeToParcel(Parcel out, int flags) {
        out.writeInt(a);
    }

    protected A(Parcel in) {
        a = in.readInt();
    }
}

public class B extends A {
    private int b;

    public B(int a, int b) {
        super(a);
        this.b = b;
    }

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

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

    public int describeContents() {
        return 0;
    }

    public void writeToParcel(Parcel out, int flags) {
        super.writeToParcel(out, flags);
        out.writeInt(b);
    }

    private B(Parcel in) {
        super(in);
        b = in.readInt();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android中的可分包和继承 的相关文章

  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • Ubuntu 16.04 - Genymotion:找不到 /dev/hw_random

    I install Genymotion on the Ubuntu 16 04 64Bit I created a virtual emulator for Android 6 0 then I run this emulator but
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 一次显示两条Toast消息?

    我希望在一个位置显示一条 Toast 消息 并在另一位置同时显示另一条 Toast 消息 多个 Toast 消息似乎总是按顺序排队和显示 是否可以同时显示两条消息 是否有一种解决方法至少可以提供这种外观并且不涉及扰乱活动布局 Edit 看来
  • 实现滚动选择 ListView 中的项目

    我想使用 ListView 您可以在其中滚动列表来选择一个项目 它应该像一个 Seekbar 但拇指应该是固定的 并且您必须使用该栏来调整它 我面临的一个问题是 我不知道这种小部件是如何调用的 这使得我很难搜索 所以我制作了下面这张图片 以
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 将两个文本视图并排放置在布局中

    我有两个文本视图 需要在布局中并排放置 并且必须遵守两条规则 Textview2 始终需要完整显示 如果布局中没有足够的空间 则必须裁剪 Textview1 例子 文本视图1 文本视图2 Teeeeeeeeeeeeeeeeeextview1
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List
  • 强制 Listview 不重复使用视图(复选框)

    我做了一个定制Listview 没有覆盖getView 方法 Listview 中的每个项目都具有以下布局 联系布局 xml

随机推荐

  • setExpressCheckout 和 SSL/TLS 错误

    我正在尝试开发一个简单的应用程序 使用户能够通过 Paypal API 从网站购买服务 该应用程序使用 C 在 ASP NET 上运行 我在尝试与 Paypal API 进行合作方面运气不佳 我调用的方法是 SetExpressChecko
  • SQL Server JDBC 驱动程序比较

    目前我们使用jtds http jtds sourceforge net 用于连接到我们的 SQL Server 数据库 我一直理所当然地认为我们出于性能和可靠性原因而使用它 但是 它的使用早于我的就业日期 综上所述 我们现在正在考虑迁移到
  • Eclipse插件开发问题

    我正在编写一个 Eclipse 插件 并且项目环境配置正确 我相信 我能够编译解决方案 而不会出现任何编译时错误 以下是在调试解决方案时引发异常的代码片段 我确信所有必需的插件和外部 jar 都已正确配置 我已经尝试了用户在互联网上建议的几
  • InputMethodManager 持有对 tabhost 的引用 - 内存泄漏 - OOM 错误

    查看层次结构如下TabActivity gt ActivityGroups gt Activities Using MAT我找到TabWidget被引用TabHost这是由引用的InputMethodManager hence TabWid
  • Visual Studio 2015 中“无法引用默认构造函数”

    我在 Visual Studio 2015 中遇到一个非常奇怪的错误消息 以下精简代码 struct A A int val 0 x val int x 0 struct B A static int y int B y 1 struct
  • plv8 的缺点或限制?

    我正在使用 PLV8 为 PostgreSQL 编写触发器和存储过程 到目前为止 我还没有真正看到与 PLPGSQL 相比的缺点 特别是如果使用 JSON 它似乎比 PLPGSQL 更智能 使用 PLV8 是否有已知的缺点或限制 PLV8
  • jquery .on() 只工作一次

    我有一个包含多个复选框输入的表
  • 当存在多个实现时,优先考虑容器内的 OSGi 服务选择

    我正在玩 OSGi 并且有一些捆绑包 捆绑包 A 和 B 都包含实现单个接口的注册服务 第三个包 C 包括用于查找实现前面提到的接口的服务的代码 A 和 B 捆绑包具有不同的版本号 但 C 似乎从第一个启动的捆绑包中获取服务 我已经更改了启
  • C++ RTTI 可行示例 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Cocoa 应用程序中处理 Cmd-Q(以及以编程方式菜单项“退出应用程序”)

    我创建了一个只有一个窗口的游戏应用程序 应用程序的创建无需 xib 文件的帮助 如下所述 如何创建 GUI 并以编程方式对 Cocoa 事件做出反应 https stackoverflow com questions 656129 how
  • C# WPF - 如何修改 ToolBar.ButtonStyleKey 样式

    我需要在鼠标悬停时显示工具栏按钮边框 否则隐藏它 我尝试执行以下操作
  • 本土化。扩展 ASP.NET Resx 资源提供程序

    对于我的网站 我有一个用于本地化目的的自定义资源提供程序 本地化字符串存储在数据库中 它工作得很好 但我希望它能够与默认的 Resx 资源提供程序一起使用 在 resx 资源中查找本地化字符串 如果不存在 则从数据库中提取它 但看起来一旦我
  • Grpc Client 抛出 Grpc.Core.RpcException (响应协议降级为 HTTP/1.1。)

    我度过了最后三天 阅读焦点 尝试不同版本的 VS 和 NET 检查 Stackoverflow 中的问题 github 中的问题 关于我的 Grpc 客户端 服务器启动正常但客户端无法工作 我尝试过Grpcurl 工作正常 but C 客户
  • Javascript 检测关闭加载了另一个域的弹出窗口

    我正在打开一个弹出窗口并将 onbeforeunload 事件附加到它 如下所示 win window open http www google com width 300px height 300px win onbeforeunload
  • 在书写模式下设置垂直中间

    我有一个带有一些文本的 div 和writing mode vertical rl 现在我希望这段文字位于中间 但是vertical align middle 即使设置也不起作用line height a background color
  • 使用 Outlook REST API 时为什么日历 ID 会发生变化?

    我们构建了一个使用 Outlook REST API V1 和 V2 版本的应用程序 我们偶尔会看到用户日历更改的日历 ID 具体来说 我们使用 GET 获取日历https outlook office com api v2 0 me ca
  • 指针、数组、printf

    我正在尝试使用一个数组来保存调查的输入 该调查的每一侧都具有相同的正值 但有一个指针指向数组的中心 因此可以使用负指针值来访问该数组 例如 数组将保存从 0 到 30 的值 指针将指向 15 系统将提示用户输入 15 到 15 之间的值 其
  • MacOSX 10.9.5 上的 Sed 错误“\1 未在 RE 中定义”

    我正在尝试使用 bash 为我的 MP3 文件名 非常重要 构建一个通用格式化程序 其中很大一部分是能够使用正则表达式变量移动文本 例如 我试图删除 ft Kevin Parker 周围的括号 oldfilename Mark Ronson
  • Sidekiq:是否可以“暂停”队列?

    是否可以 暂停 sidekiq 队列 我正在运行下载作业 但我必须让我的 Mac 运行 休眠 所以我想告诉 sidekiq 暂停一下 有没有一种简单的方法可以做到这一点 您无法中途停止作业 如果您想停止处理队列中的新作业 这是 Sideki
  • Android中的可分包和继承

    我得到了一个适用于不涉及继承的单个类的 Parcelable 实现 在继承方面 我无法找出实现接口的最佳方法 假设我得到了这个 public abstract class A private int a protected A int a