1.创建一个类继承自View或ViewGroup
2.创建其中的构造方法
public NumberInputView(Context context) { this(context,null);//使用this不管用哪个方法创建都会到达第三个构造方法 } public NumberInputView(Context context, AttributeSet attrs) { this(context, attrs,0); } public NumberInputView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); }
3.创建一个input_number_view.xml的布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="-"/> <EditText android:layout_width="50dp" android:layout_height="wrap_content" android:text="0"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="+"/> </LinearLayout>
4.在第三个构造方法中将上面的布局文件加载到容器中
View view = LayoutInflater.from(context).inflate(R.layout.input_number_view,this,false); addView(view);//把View添加到当前容器中
5.在MainActivity的布局文件main_activity.xml中调用自定义控件
<com.fjnu.customview.customview.NumberInputView android:layout_height="wrap_content" android:layout_width="wrap_content"/>
6.运行查看效果