2017-06-14 104 views
0

我目前正在使用VS2017上的Xamarin PCL项目。在Android项目下,我创建了一个名为TestBtn的类。代码如下所示。我按照按钮元数据并相应地声明了构造函数,如下所示。但是我得到一个错误的Button不包含一个带0参数的构造函数。按钮不包含带0参数的构造函数

任何想法为什么这我得到这个错误?

namespace CustomRibbonRenderer.Droid 
{ 
    public class TestBtn: Button 
    { 
     public TestBtn(Context context) 
     { 

     } 
    } 
} 
+0

'public TestBtn(Context context,IAttributeSet attributeSet):base(context,attributeSet){}' - 试试这个 – Yupi

+0

很酷的工作。感谢yupi! :D任何想法为什么:base(上下文)是必需的,但? –

+0

需要将'Button'的.NET表示形式链接到'Button'的Android/Java运行时版本。这可以让Xamarin.Android运行时实例化它。 – matthewrdev

回答

1

Button代表一个按钮小部件。用户可以按下按钮或点击按钮来执行操作。 Acording到Xamarin文档Button类接受4个公共构造函数和一个受保护的:

Button(Context) 
Button(Context, IAttributeSet) 
Button(Context, IAttributeSet, Int32) 
Button(Context, IAttributeSet, Int32, Int32) 

错误是出现在你的代码,因为你也没有告诉base()base关键字用在构造函数中。派生类构造函数需要从其基类调用构造函数。

0

您有一个构造函数接受一个参数(上下文)。如果初始化TestBtn时没有参数可能会出现错误。

相关问题