【问题标题】:ImageButton click does not workImageButton 点击​​不起作用
【发布时间】:2014-02-19 19:13:11
【问题描述】:

我尝试了两种不同的方法来为 ImageButton 设置事件,但都没有奏效。首先我尝试在 axml 文件中添加 onClick:

<ImageButton
    android:src="@drawable/homeInfoButtonImages"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/homeInfoButton"
    android:layout_marginLeft="200dp"
    android:layout_marginTop="600dp"
    android:background="@null"
    android:onClick="infoButtonClick" />

在Activity.cs中:

    private void infoButtonClick()
    {
        Console.Write("Clicked");
    }

单击按钮后应用程序立即崩溃。

我在Activity.cs中尝试的第二种方法:

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        SetContentView(Resource.Layout.Home);

        // Create your application here
        ImageButton button = FindViewById<ImageButton>(Resource.Id.homeInfoButton);

        button.Click += delegate
        {
            infoButtonClick();
        };
    }

    private void infoButtonClick()
    {
        Console.Write("Clicked");
    }

点击按钮时什么都没有发生...

什么可能导致这个问题?

【问题讨论】:

  • 你能发布崩溃的 logcat 输出吗?我怀疑您没有将 [Java.Interop.Export("infoButtonClick")] 作为属性添加到您的 infoButtonClick 方法。看到我这个类似的答案:stackoverflow.com/questions/20197848/…

标签: c# android xamarin


【解决方案1】:

在从xml的onClick属性调用的方法中,必须传递视图的参数,并且必须是public的:

public void infoButtonClick(View v)
{
  Console.Write("Clicked");
}

如你所见here

【讨论】:

    【解决方案2】:

    请删除Console.Write("Clicked"); 并测试。

    【讨论】:

      【解决方案3】:

      我在 Eclipse 中使用 java 进行编码。我遇到了同样的问题。所以我不知道它是否适合你。

      尝试 public void infoButtonClick() 而不是 private。

      这个解决方案对我有用。认为它可能会有所帮助。

      【讨论】:

        【解决方案4】:

        Console.WriteLine 可能有一些意想不到的行为(至少我所经历的)。下面的代码对我来说很好。

                FindViewById<ImageButton> (Resource.Id.imageButton1).Click += (s, e) =>
                    Log.Info (s.ToString (), "Image button clicked!");
        

        【讨论】:

          猜你喜欢
          • 2016-05-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-06
          • 1970-01-01
          • 1970-01-01
          • 2021-09-28
          • 1970-01-01
          相关资源
          最近更新 更多