Java Android - 将父级转换为子级到子级

时间:2011-09-05 14:44:20

标签: java android

更新 在这种情况下,我认为它与众不同。你不能将父母强制转换为儿童句号;)


我疯了。

我有一个班级:

public class ActivityMonitorItemView Extends LinearLayout

现在我使用LayoutInflator返回LinearLayout。但是因为这会返回一个View,我首先会像这样转换为LinearLayout:

LinearLayout sillyLayout = (LinearLayout) vi.inflate(R.layout.activity_monitor_item, null);

但现在我尝试将sillyLayout转换为ActivityMonitorItemView ..

ActivityMonitorItemView amtv = (ActivityMonitorItemView) sillyLayout;

我得到了ClassCastException ...

任何想法? (下面使用的实际代码)

@Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
        ActivityMonitorItemView v = (ActivityMonitorItemView) convertView;
        if(v == null)
        {
            LayoutInflater vi = (LayoutInflater)OurViewManager.getAnswersRef().getCurrentActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            LinearLayout t = (LinearLayout) vi.inflate(R.layout.activity_monitor_item, null);

            v = (ActivityMonitorItemView) t;
            v.LinkUpToTask(listItems.get(position));
        }


        return v;
    }

1 个答案:

答案 0 :(得分:1)

除非视图正在膨胀实际上是一个ActivityMonitorItemView,否则你将获得异常。您必须在xml文件中提供类的全名。因此,而不是LinearLayout,它就像

<com.example.ActivityMonitorItemView
  android:layout_width="wrap_content"
  android:layout_height="wrap_conetent"
  android:id="@+id/tester"/>

希望这会有所帮助

相关问题