Java.Lang.NoSuchMethodError:没有非静态方法“Landroid / widget / CompoundButton Xamarin.Android

时间:2017-05-19 12:31:22

标签: android xamarin.android radio-button nosuchmethoderror

我收到此错误:

  

Java.Lang.NoSuchMethodError:没有非静态方法“Landroid / widget / CompoundButton; .getButtonDrawable()Landroid / graphics / drawable / Drawable;

当我使用像这样的单选按钮ButtonDrawable时:

    if(myRadioButton.ButtonDrawable == null)
    {
        //Do Something
    }

我在android API = 23(Marshmallow)上测试了应用程序,它运行正常。我得到这个Android API的错误< 23(比棉花糖早)

我正在使用Xamarin.Android.Support.Design版本25.3.1

有什么想法来解决它吗?

2 个答案:

答案 0 :(得分:2)

  

我在android API = 23(Marshmallow)上测试了应用程序,它运行正常。我得到这个Android API的错误< 23(比棉花糖早)

这是预期的行为。如果你参考 ButtonDrawable。这个API在API Level 23中添加。

答案 1 :(得分:0)

猫王是对的,这是我的错。 如果有人有同样的问题,这就是我如何在不使用get button drawable的情况下解决问题。

此代码适用于Xamarin.android,但您可以将其转换为Java。

//Remove radio button circle    
 radioButton.SetButtonDrawable(new StateListDrawable());

//Set tag = true to know the button drawable is null
radioButton.Tag = true;

稍后在代码中:

if(radioButton.tag.Equals(true))
{
   //Do something
}