1_自定義數字加減控制項的要求 創建Module -NumberAddSubView A_輸入的只能是數字,而且不能通過鍵盤輸入 B_通過加減按鈕操作數字 C_監聽加減按鈕 D_數組有最小值和最大值的限制 E_自定義屬性 2_提供介面,讓外界監聽到數字的變化 1_設置介面 2_監聽變化 3_自定義屬性 ...
1_自定義數字加減控制項的要求
創建Module -NumberAddSubView
A_輸入的只能是數字,而且不能通過鍵盤輸入
B_通過加減按鈕操作數字
C_監聽加減按鈕
D_數組有最小值和最大值的限制
E_自定義屬性
2_提供介面,讓外界監聽到數字的變化
1_設置介面
@Override public void onClick(View v) { if (v.getId() == R.id.btn_sub) { //Toast.makeText(mContext,"減",Toast.LENGTH_SHORT).show(); subNum(); if (onButtonClickListenter != null) { onButtonClickListenter.onButtonSubClick(v, value); } } else if (v.getId() == R.id.btn_add) { //Toast.makeText(mContext,"加",Toast.LENGTH_SHORT).show(); addNum(); if (onButtonClickListenter != null) { onButtonClickListenter.onButtonAddClick(v, value); } } } public interface OnButtonClickListenter { /** * 當增加按鈕被點擊的時候回調該方法 * * @param view * @param value */ public void onButtonAddClick(View view, int value); /** * 當減少按鈕被點擊的時候回調這個方法 * * @param view * @param value */ public void onButtonSubClick(View view, int value); } private OnButtonClickListenter onButtonClickListenter; public void setOnButtonClickListenter(OnButtonClickListenter onButtonClickListenter) { this.onButtonClickListenter = onButtonClickListenter; }
2_監聽變化
public class MainActivity extends AppCompatActivity { private NumberAddSubView nb_addsub_view; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); nb_addsub_view = (NumberAddSubView) findViewById(R.id.nb_addsub_view); nb_addsub_view.setOnButtonClickListenter(new NumberAddSubView.OnButtonClickListenter() { @Override public void onButtonAddClick(View view, int value) { Toast.makeText(MainActivity.this,"AddClick Vaule=="+value,Toast.LENGTH_SHORT).show(); } @Override public void onButtonSubClick(View view, int value) { Toast.makeText(MainActivity.this,"SubClick Vaule=="+value,Toast.LENGTH_SHORT).show(); } }); } }
3_自定義屬性
<com.atguigu.numberaddsubview.NumberAddSubView android:id="@+id/nunber_add_sub_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" atguigu:value="3" atguigu:minValue="2" atguigu:maxValue="15" atguigu:numberAddSubBackground="@drawable/number_add_sub_view_selector" atguigu:numberSubBackground="@drawable/btn_number_selector" atguigu:numberAddBackground="@drawable/btn_number_selector" />
github完整代碼:https://github.com/ganchuanpu/NumberAddSubView