2011-09-05 159 views
1

更新: 我当时很愚蠢,认为它在这种情况下有所不同。你不能把一个父母给儿童句号;)Java Android - 将父母铸造成儿童与儿童


我要生气了。

我有一个类:

public class ActivityMonitorItemView Extends LinearLayout 

现在我使用的是LayoutInflator到返回的LinearLayout。但是,因为这将返回查看我第一投射到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

除非视图膨胀实际上是一个ActivityMonitorItemView然后你会得到异常。你必须在你的xml文件中给出你的班级的全名。因此,不是的LinearLayout的它会像

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

希望这有助于

+0

稀释是,好点。我没有想到这样做!谢谢 – Micky