Я создаю приложение для Android, которое использует специально созданный TwoDScrollView, найденный здесь:
http://blog.gorges.us/2010/06/android-two-Dimension-ScrollView/
На этот же класс можно найти ссылки на нескольких других веб-сайтах, и другие участники Stack Overflow задавали вопросы по этому поводу. Я использовал его в предыдущем приложении для Android, которое я создавал с использованием Java/Eclipse, и у меня все получалось.
В своем текущем приложении я хотел использовать C# и MonoDroid. Я решил полностью переписать класс TwoDScrollView на C#. После его перезаписи и последующего использования в каком-то макете XML я получаю следующие исключения при попытке запустить свой код:
System.NotSupportedException был выдан. Не удалось активировать экземпляр типа MyProject.TwoDScrollView из собственного дескриптора 44f4d310.
System.Exception: не найден конструктор для Мой проект.TwoDScrollView::.ctor(System.IntPtr, Android.Runtime.JniHandleOwnership) ......с дополнительным текстом, следующим образом....
Мой макет XML выглядит следующим образом:
В соответствии с инструкциями по следующей ссылке по использованию пользовательских представлений в макете XML в MonoDroid: http://docs.xamarin.com/android/ advanced_topics/using_custom_views_in_a_layout
Конструкторы класса TwoDScrollView выглядят следующим образом:
public TwoDScrollView(Context context)
: base(context)
{
initTwoDScrollView();
}
public TwoDScrollView(Context context, IAttributeSet attrs)
: base(context, attrs)
{
initTwoDScrollView();
}
public TwoDScrollView(Context context, IAttributeSet attrs, int defStyle)
: base(context, attrs, defStyle)
{
initTwoDScrollView();
}
В версии C# существуют те же конструкторы, что и в версии Java (которые вы можете найти по приведенной выше ссылке). Любая идея о том, что может пойти не так? Я могу опубликовать полный код C# моего TwoDScrollView, если кто-то захочет его увидеть. По сути, это то же самое, что и код Java, бит за битом, за исключением того, что он переписан на C#.
Спасибо за любую помощь!