ここにあるカスタムビルドのTwoDScrollViewを使用するAndroidアプリケーションを構築しています:
http://blog.gorges.us/2010/06/android-two-dimension-scrollview/
この同じクラスは、他のいくつかのWebサイトで参照されており、StackOverflowの他のWebサイトから質問があります。Java / Eclipseを使用して構築していた以前のAndroidアプリケーションで使用していましたが、成功していました。
現在のアプリケーションでは、C#とMonoDroidを使用したいと思いました。TwoDScrollViewクラス全体をC#で書き直すことにしました。それを書き直し、レイアウトXMLで使用した後、コードを実行しようとすると、次の例外が発生します。
System.NotSupportedExceptionがスローされました。ネイティブハンドル44f4d310からタイプMyProject.TwoDScrollViewのインスタンスをアクティブ化できません。
System.Exception:MyProject.TwoDScrollView ::。ctor(System.IntPtr、Android.Runtime.JniHandleOwnership)のコンストラクターが見つかりません......次のテキストが続きます...。
私のレイアウトXMLは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<myproject.TwoDScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</myproject.TwoDScrollView>
</RelativeLayout>
MonoDroidのレイアウトXMLでカスタムビューを使用する方法については、次のリンクの手順に従ってください。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バージョン(上記のリンクにあります)と同じコンストラクターが存在します。何がうまくいかないかについて何か考えはありますか?誰かが見たい場合は、TwoDScrollViewの完全なC#コードを投稿できます。これは、C#で書き直されていることを除いて、ビットのJavaコードビットと本質的に同じです。
助けてくれてありがとう!