Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Xamarin Android中为复选框添加自定义属性?_Xamarin_Xamarin.android - Fatal编程技术网

如何在Xamarin Android中为复选框添加自定义属性?

如何在Xamarin Android中为复选框添加自定义属性?,xamarin,xamarin.android,Xamarin,Xamarin.android,在我的XamarinAndroid应用程序中,我需要一些用于复选框控件的自定义属性。我们有默认属性,如“Id”、“Text”等 是否可以通过编程方式将自定义属性添加到复选框?在Xamarin中做得很好。Android是小菜一碟: 首先,通过从复选框控件继承类来创建自定义复选框,如下所示: public class CustomCheckBox: CheckBox { Context mContext; public CustomCheckBox(Context context) : bas

在我的XamarinAndroid应用程序中,我需要一些用于复选框控件的自定义属性。我们有默认属性,如“Id”、“Text”等


是否可以通过编程方式将自定义属性添加到复选框?

在Xamarin中做得很好。Android是小菜一碟:

  • 首先,通过从复选框控件继承类来创建自定义复选框,如下所示:

    public class CustomCheckBox: CheckBox
    {
    
    Context mContext;
    
    public CustomCheckBox(Context context) : base(context)
    {
        Init(context, null);
    }
    public CustomCheckBox(Context context, Android.Util.IAttributeSet attrs) : base(context, attrs)
    {
        Init(context, attrs);
    }
    public CustomCheckBox(Context context, Android.Util.IAttributeSet attrs, int defStyleAttr) : base(context, attrs, defStyleAttr)
    {
        Init(context, attrs);
    }
    public CustomCheckBox(Context context, Android.Util.IAttributeSet attrs, int defStyleAttr, int defStyleRes) : base(context, attrs, defStyleAttr, defStyleRes)
    {
        Init(context, attrs);
    }
    private void Init(Context ctx, Android.Util.IAttributeSet attrs)
    {
        mContext = ctx;
    }
    }
    
    public class CustomCheckBox : CheckBox , IPropertyCollection
    { ...... }
    
    public interface IPropertyCollection 
    {
    long FieldId { get; set; }
    
    string FieldName { get; set; }
    
    long PrimaryId { get; set; }
    }
    
  • 然后,您可以通过两种不同的方式向其中添加自定义属性

  • 首先,您可以创建一个接口并继承该接口(建议使用一个接口,因为它可以帮助您在某些其他自定义控件中需要相同的属性),例如:

    public class CustomCheckBox: CheckBox
    {
    
    Context mContext;
    
    public CustomCheckBox(Context context) : base(context)
    {
        Init(context, null);
    }
    public CustomCheckBox(Context context, Android.Util.IAttributeSet attrs) : base(context, attrs)
    {
        Init(context, attrs);
    }
    public CustomCheckBox(Context context, Android.Util.IAttributeSet attrs, int defStyleAttr) : base(context, attrs, defStyleAttr)
    {
        Init(context, attrs);
    }
    public CustomCheckBox(Context context, Android.Util.IAttributeSet attrs, int defStyleAttr, int defStyleRes) : base(context, attrs, defStyleAttr, defStyleRes)
    {
        Init(context, attrs);
    }
    private void Init(Context ctx, Android.Util.IAttributeSet attrs)
    {
        mContext = ctx;
    }
    }
    
    public class CustomCheckBox : CheckBox , IPropertyCollection
    { ...... }
    
    public interface IPropertyCollection 
    {
    long FieldId { get; set; }
    
    string FieldName { get; set; }
    
    long PrimaryId { get; set; }
    }
    
    其中IPropertyCollection如下所示:

    public class CustomCheckBox: CheckBox
    {
    
    Context mContext;
    
    public CustomCheckBox(Context context) : base(context)
    {
        Init(context, null);
    }
    public CustomCheckBox(Context context, Android.Util.IAttributeSet attrs) : base(context, attrs)
    {
        Init(context, attrs);
    }
    public CustomCheckBox(Context context, Android.Util.IAttributeSet attrs, int defStyleAttr) : base(context, attrs, defStyleAttr)
    {
        Init(context, attrs);
    }
    public CustomCheckBox(Context context, Android.Util.IAttributeSet attrs, int defStyleAttr, int defStyleRes) : base(context, attrs, defStyleAttr, defStyleRes)
    {
        Init(context, attrs);
    }
    private void Init(Context ctx, Android.Util.IAttributeSet attrs)
    {
        mContext = ctx;
    }
    }
    
    public class CustomCheckBox : CheckBox , IPropertyCollection
    { ...... }
    
    public interface IPropertyCollection 
    {
    long FieldId { get; set; }
    
    string FieldName { get; set; }
    
    long PrimaryId { get; set; }
    }
    
  • 第二,您可以直接将属性添加到控件类中,控件类中也可以使用类似这样的属性

     public class CustomCheckBox : CheckBox 
    { ...... 
      public string FieldName {get; set;}
     }
    
希望有帮助

祝你好运


如果在Android上出现任何查询

,您可以自定义属性并在
.axml
文件中自定义它们

1) 在values文件夹中添加
attrs.xml
文件

 <?xml version="1.0" encoding="utf-8" ?>
 <resources>
   <declare-styleable name="custom">
     <attr name="test" format="string" />
     <attr name="number" format="integer" />
   </declare-styleable>
 </resources>
2) 在
.axml
文件中自定义它:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:custom="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
  <App39.MyCheckBox
    android:id="@+id/checkbox"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    custom:test="111111111"
    custom:number="200">

  </App39.MyCheckBox>
</RelativeLayout>
,我为您提供一个演示