2017-05-19 21 views
0

내가이 오류 :Java.Lang.NoSuchMethodError : 없음 비 정적 방법 "Landroid/위젯/CompoundButton Xamarin.Android가

Java.Lang.NoSuchMethodError: no non-static method "Landroid/widget/CompoundButton;.getButtonDrawable()Landroid/graphics/drawable/Drawable;

나는이 같은 라디오 버튼 ButtonDrawable 사용하고 있습니다 :

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

나는 안드로이드 API = 23 (산들 바람)에 응용 프로그램을 테스트하고 그것을 잘 작동합니다. 내가 안드로이드 API에 대해이 오류가 < 23 (이전의 산들에 비해)

내가 사용하고 Xamarin.Android.Suppor 디자인 버전 25.3.1

문제를 해결하려면 어떻게해야합니까?

답변

0

엘비스는 정확합니다. 실수였습니다. 누군가가 같은 문제가있는 경우이 방법을 사용하여 get button drawable을 사용하지 않고 문제를 해결했습니다.

이 코드는 Xamarin.android이지만 자바로 변환 할 수 있습니다.

//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 
} 
2

I tested the app on android API = 23 (Marshmallow) and it works fine. I get this error for android API < 23 (older than Marshmallow)

예상되는 동작입니다. ButtonDrawable을 참조하십시오. 이 API는 API 레벨 23에 추가되었습니다.