android:id="@+id/numberAddView"
whq:number_background="@drawable/add_sub_number_view_bg"
whq:minValue="1"
whq:maxValue="10"
whq:value="2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<resources>
<declare-styleable name="numberAddSubView">//view的名稱
<attr name="value" format="integer|reference"/>
<attr name="minValue" format="integer|reference"/>
<attr name="maxValue" format="integer|reference"/>
<attr name="number_background" format="reference"/>//引用類型
</declare-styleable>
super(context, attrs, defStyleAttr);
mContext = context;
if(value>0) {//不等於0纔有值
setValue(value);//屬性如果被賦值,則先執行屬性,再執行構造函數,然後是未被賦值的屬性初始化
}
int minValue=typedArray.getInt(R.styleable.numberAddSubView_minValue,0);//默認爲0
if(minValue>0) {//不等於0纔有值
setMinValue(value);//屬性如果被賦值,則先執行屬性,再執行構造函數,然後是未被賦值的屬性初始化
}
int maxValue=typedArray.getInt(R.styleable.numberAddSubView_maxValue,0);//默認爲0
if(maxValue>0) {//不等於0纔有值
setMaxValue(value);//屬性如果被賦值,則先執行屬性,再執行構造函數,然後是未被賦值的屬性初始化
}
Drawable numberAddSubView_number_number_background = typedArray.getDrawable(R.styleable.numberAddSubView_number_background);
if(numberAddSubView_number_number_background!=null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
setBackground(numberAddSubView_number_number_background);
}
}
}
//把佈局添加到類中
View view = View.inflate(context, R.layout.add_sub_number_view, numberAddSubView.this);
btn_sub = (Button) findViewById(R.id.btn_sub);
tv_value = (TextView) findViewById(R.id.tv_value);
btn_add = (Button) findViewById(R.id.btn_add);
btn_sub.setOnClickListener(this);
btn_add.setOnClickListener(this);
}