//組合式自定義
控件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageButton
android:id="@+id/iv_sub"
android:src="@drawable/a"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/text"
android:layout_width="50dp"
android:layout_height="50dp"
android:gravity="center"
android:text="1"
android:textColor="@android:color/background_dark"
android:textSize="20sp"/>
<ImageButton
android:id="@+id/iv_sub2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/b"/>
</LinearLayout>
public class AddSubView extends LinearLayout implements View.OnClickListener {
private View inflate;
private ImageButton imageButton;
private ImageButton imageButton1;
private TextView textView;
private int mValue;
//在建立對象的時候調用
public AddSubView(Context context) {
this(context, null);
}
//在MML檔案中調用
public AddSubView(Context context, AttributeSet attrs) {
this(context, null, 0);
}
//在XML中使用,且使用style風格中
public AddSubView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView(getContext());
}
private void initView(Context context) {
inflate = View.inflate(context, R.layout.add_sub_view, this);
imageButton = (ImageButton) inflate.findViewById(R.id.iv_sub);
imageButton1 = (ImageButton) inflate.findViewById(R.id.iv_sub2);
textView = (TextView) inflate.findViewById(R.id.text);
imageButton1.setOnClickListener(this);
imageButton.setOnClickListener(this);
//獲取value
getValue();
}
//目前數量值,預設為1,設定對此值得擷取
private int value =1;
public int getValue() {
String trim = textView.getText().toString().trim();
if (!TextUtils.isEmpty(trim)){
//獲取出來,應為值是字元串,是以要進行int轉化
value=Integer.valueOf(trim);
}
return value;
}
public void setValue(int value){
mValue=value;
textView.setText(value+"");
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.iv_sub://減
if (value>0){
value--;
}
setValue(value);
break;
case R.id.iv_sub2://加
if (value<5){
value++;
}
setValue(value);
}
}
}
<example.addsuview.AddSubView
android:id="@+id/av"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>