【问题标题】:Casting super class to sub class in Android在Android中将超类转换为子类
【发布时间】:2013-06-30 05:15:21
【问题描述】:

我创建了一个名为 CalendarCell 的类,它扩展了 TextView,我在 TableLayout 内的 TableRow 中添加了一些实例,我想遍历这些实例并在其中使用一些方法,但是方法“getVirtualChildAt” TableRow 返回一个 View,而不是 CalendarCell,我不能(显然)从 View(或 TextView)转换到 CalendarCell

【问题讨论】:

  • 试试view instanceof CalendarCell
  • 你不能投射的(明显)原因是什么?
  • 愚蠢地回滚并且不一致第3方突出显示滥用

标签: java android superclass


【解决方案1】:

由于CalendarCell 类扩展了TextViewView 的子类),因此您可以检查检索到的对象是否是CalendarCell 的实例,然后将其安全地转换为CalendarCell 实例。

View view = tableRow.getVirtualChildAt(i);
if (view instanceof CalendarCell) {
  CalendarCell calendarCell = (CalendarCell) view;
  // Here you can access calendarCell object
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    相关资源
    最近更新 更多