2011-09-05 138 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