0

ネイティブのAndroid/Javaで作成したコードをMonoDroidに移植しようとしていますが、ボタンをクリックすると次のエラーが発生します。

java.lang.IllegalStateException:ID'createProfilePicBtn'のビュークラスandroid.widget.ButtonのonClickハンドラーのアクティビティクラスicantalk.android.CreateProfileでメソッドDoClick(View)が見つかりませんでした

    public void DoClick(View view)
    {
        switch (view.Id)
        {
            case Resource.Id.createProfilePicBtn:
                {
                    Log.Error("Profile Pic", "Clicked");
                    break;
                }
            case Resource.Id.createProfileSbmtBtn:
                {
                    Log.Error("Save Button", "Clicked");
                    break;
                }
        }
    }

私のレイアウトxmlの関連部分は次のとおりです。

      <Button
      android:id="@+id/createProfilePicBtn"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="10dip"
      android:layout_marginRight="10dip"
      android:layout_marginTop="10dip"
      android:onClick="DoClick"
      android:text="@string/createProfileImgBtnTxt" />

      <Button
      android:id="@+id/createProfileSbmtBtn"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="10dip"
      android:layout_marginRight="10dip"
      android:layout_marginTop="10dip"
      android:onClick="DoClick"
      android:text="@string/createProfileSaveBtnTxt" />
4

1 に答える 1

1

この方法でのイベントの登録は、現在、MonoDroidではサポートされていません。

次のコードを使用してイベントを登録できます。

public override void OnCreate(Bundle bundle)
{
    base.OnCreate(bundle);
    //Do other oncreate stuff here (including SetContentView etc)

    //Register the event for your first button
    Button btn = FindViewById<Button>(Resource.id.createProfilePicBtn);
    btn.Click += DoClick;

    //Register the event for your second button
    Button btn2 = FindViewById<Button>(Resource.id.createProfileSbmtBtn);
    btn2.Click += DoClick;
}


public void DoClick(object sender, EventArgs e)
{
    View view = (View)sender;
    switch (view.Id)
    {
       case Resource.Id.createProfilePicBtn:
       {
          Log.Error("Profile Pic", "Clicked");
          break;
       }
       case Resource.Id.createProfileSbmtBtn:
       {
           Log.Error("Save Button", "Clicked");
           break;
       }
    }
}
于 2012-09-02T13:52:18.790 に答える