2014-10-31 51 views
2

我在我的MainActivity中有一個ListView。我使用自定義適配器來爲我的ListView中的不同行膨脹不同的佈局,通過檢查作爲參數提供給自定義適配器的String對象是否等於某個值「A」,但是當我這樣做時,我從我的定製視圖如何在Android中的列表視圖中的行之一添加自定義視圖?

10-31 19:28:34.915: E/AndroidRuntime(14455): FATAL EXCEPTION: main 
10-31 19:28:34.915: E/AndroidRuntime(14455): Process: co.example.customviewtest, PID: 14455 
10-31 19:28:34.915: E/AndroidRuntime(14455): android.view.InflateException: Binary XML file line #8: Error inflating class co.example.customviewtest.MyCustomView 
10-31 19:28:34.915: E/AndroidRuntime(14455): at android.view.LayoutInflater.createView(LayoutInflater.java:620) 
10-31 19:28:34.915: E/AndroidRuntime(14455): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) 
10-31 19:28:34.915: E/AndroidRuntime(14455): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 

回答

0

您必須告訴列表視圖,您的適配器可以處理多種類型的視圖。爲了做到這一點你必須覆蓋這2種方法: http://developer.android.com/reference/android/widget/BaseAdapter.html#getViewTypeCount() http://developer.android.com/reference/android/widget/BaseAdapter.html#getItemViewType(int)

這會告訴系統如何回收的意見。

+0

感謝您的及時回覆@azertiti,但我已經做到了。一切工作正常,如果我不包括我的自定義視圖,如果我有一個基本簡單的另一個佈局,而不是自定義視圖,它工作正常,問題是使用自定義視圖時。 – 2014-10-31 14:44:02

0

'co.example.customviewtest.MyCustomView'是您的自定義視圖的正確全名嗎?包名是否真的以'co'而不是'com'開頭?你在'MyCustomView'類中提供了兩個參數構造函數嗎?

public MyCustomView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 
+0

我的事情我可以命名我的包,我怎麼想它..基本上它應該是一個反向域名,糾正我,如果我錯了 ie:如果我的域名是說example.com,其反向域將是com.example 同樣example.co => co.example 其餘部分只是我的項目名稱 co.example。 2014-10-31 15:10:47

+0

是的,我確實提供了兩個參數構造函數,我想提到我的自定義視圖只包含一個webview,如果這會有所幫助。 – 2014-10-31 15:14:08

+0

是的,你說得對。簡單地說,我想確保'co'不是一個錯誤(在你的xml中),這會引發InflateException。 – wpiwonski 2014-10-31 15:17:33

相關問題