2013-09-16 60 views
2

是否可以膨脹模板化的自定義/子類視圖?充氣通用/模板化的自定義視圖

也就是說,可以在以下膨脹:

public class TextViewT<T> : TextView 
{ 
    List<T> _list; 

    public TextViewT(Context context) : base(context) { } 
    public TextViewT(Context context, IAttributeSet attributes) : base(context, attributes) { } 
} 

如果是這樣,什麼是這種類型的佈局文件的語法?

具體而言,絕對班級名稱app.droid.views.custom.TextViewT將如何顯示?

<?xml version="1.0" encoding="utf-8"?> 
<app.views.custom.TextViewT 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/text_view_t" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

我試圖這樣做,當出現以下情況例外:

UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type 'App.Droid.Views.Custom.TextViewT, App.Droid, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. 
at System.Type.GetType (string,bool) <0x00027> 
at Java.Interop.TypeManager.n_Activate (intptr,intptr,intptr,intptr,intptr,intptr) <0x00057> 
at (wrapper native-to-managed) Java.Interop.TypeManager.n_Activate (intptr,intptr,intptr,intptr,intptr,intptr) <0x0006f> 
at (wrapper delegate-invoke) <Module>.invoke_void__this___intptr_intptr_intptr_intptr_JValue[] (intptr,intptr,intptr,intptr,Android.Runtime.JValue[]) <0x000cb> 
at Android.Runtime.JNIEnv.CallNonvirtualVoidMethod (intptr,intptr,intptr,Android.Runtime.JValue[]) <0x00067> 
at Android.App.Activity.SetContentView (int) <0x001d7> 
at App.Droid.Views.CalendarView.Render() <0x00073> 
at MonoCross.Droid.MXActivityView`1<App.ViewModels.CalendarVM>.OnCreate (Android.OS.Bundle) <0x00243> 
at App.Droid.Views.CalendarView.OnCreate (Android.OS.Bundle) <0x0001b> 
at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (intptr,intptr,intptr) <0x00057> 
at (wrapper dynamic-method) object.cb51fcb8-c099-4fce-b266-642090f4d778 (intptr,intptr,intptr) <0x00043> 

謝謝。

+0

據http://docs.xamarin.com/guides/android/ advanced_topics /限制泛型只能從託管(.net)代碼創建。所以如果通貨膨脹過程是在原生Java代碼中完成的(它可能是這樣),那麼沒有骰子。 – samosaris

+0

http://stackoverflow.com/questions/5008426/adding-a-custom-view-to-xml-but-with-a-generic-type – samosaris

+1

它實際上可以在你的XML佈局中使用Java泛型Gradle插件,在這裏解釋:http://stackoverflow.com/a/26766254/1331240 – woot

回答

相關問題