パッケージcom.example.shoppingcart.view.activity。
輸入android.content.Context;
輸入android.util.AttributeSet;
輸入android.view.View。
輸入android.widget.LinearLayout;
輸入android.widget.TextView。
輸入android.widget.Toast;
輸入com.example.shoppingcart.R。
パブリッククラスAddAndRemoveはのLinearLayoutがView.OnClickListener {実装して拡張する
プライベートビュービューを。
民間のTextView減算器;
民間のTextView番号。
民間のTextViewを追加します。
プライベートint型のカウント= 1;
公共AddAndRemove(コンテキスト・コンテキスト){
スーパー(コンテキスト)。
}
公共AddAndRemove(コンテキスト・コンテキスト、属性セットのATTRS){
スーパー(コンテキスト、attrsに);
ビュー= View.inflate(文脈、R.layout.addandremove、この)。
initView();
}
プライベートボイドinitView(){
減算器=(のTextView)view.findViewById(R.id.subtractor)。
数=(のTextView)view.findViewById(R.id.number)。
追加=(のTextView)view.findViewById(R.id.add)。
subtractor.setOnClickListener(この);
add.setOnClickListener(この);
}
@Override
公共ボイドのonClick(ビューV){
スイッチ(v.getId()){
ケースR.id.subtractor:
IF(カウント> 1){
count--。
number.setText(カウント+ "");
//コールバックインターフェースと、変更をクリックした後に値を渡します
IF(!onNumberChangeListener = NULL){
onNumberChangeListener.changed(COUNT);
}
}他{
Toast.makeText(のgetContext()は、 "それを小さくすることはできません"、Toast.LENGTH_SHORT).SHOW();
}
BREAK;
ケースR. id.add:
COUNT ++;
number.setText(COUNT + "");
伝統的な値でコールバックインターフェースを変更//クリックした後
IF(onNumberChangeListener = NULL!){
onNumberChangeListener.changed(COUNT);
}
BREAK;
}
}
パブリックインターフェイスonNumberChangeListener {
ボイド(int型NUM)に変更しました。
}
OnNumberChangeListener onNumberChangeListener。
公共ボイドsetOnNumberChangeListener(OnNumberChangeListener onNumberChangeListener){
this.onNumberChangeListener = onNumberChangeListener。
}
公共INTはgetNumber(){
戻りカウント;
}
公共ボイドsetCount(int型NUM){
NUM =数えます。
number.setText(カウント+ "");
}
}