Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.will.counterapp;
- import android.app.Activity;
- import android.content.Context;
- import android.graphics.Color;
- import android.support.v4.app.Fragment;
- import android.support.v7.app.AppCompatActivity;
- import android.util.TypedValue;
- import android.view.Gravity;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.Button;
- import android.widget.LinearLayout;
- import android.widget.TextView;
- public class Counter implements View.OnClickListener {
- private final int buttonPixels = 100;
- private final int buttonTextSizePixels = buttonPixels / 10;
- private final int addButtonId = View.generateViewId();
- private final int subButtonId = View.generateViewId();
- private int buttonTextSize = 0;
- private int buttonWidth = 0;
- private Button add;
- private Button sub;
- private TextView disp;
- private final int countTextSizePixels = 20;
- private final int countTextId = View.generateViewId();
- private int countTextSize = 0;
- private final int layoutPixels = 100;
- private final int layoutId = View.generateViewId();
- private int layoutHeight = 0;
- private ViewGroup mainContainer = null;
- private Activity activity = null;
- private Context context = null;
- private LinearLayout container = null;
- private Button addButton = null;
- private TextView countDisp = null;
- private Button subButton = null;
- private Integer count = 0;
- private Integer index;
- // private String name = "";
- //----------------------------------------CONSTRUCTORS------------------------------------------
- public Counter(Context context, Integer index, ViewGroup mainContainer) {
- this.index = index;
- this.context = context;
- this.mainContainer = mainContainer;
- this.container = new LinearLayout(this.context);
- this.buttonWidth = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, buttonPixels, this.context.getResources().getDisplayMetrics());
- this.countTextSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, countTextSizePixels, this.context.getResources().getDisplayMetrics());
- this.buttonTextSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, buttonTextSizePixels, this.context.getResources().getDisplayMetrics());
- this.layoutHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, layoutPixels, this.context.getResources().getDisplayMetrics());
- }
- public void createCounter() {
- createLinearLayout();
- createSubButton();
- createTextView();
- createAddButton();
- }
- // addCounterButton.setOnClickListener(new View.OnClickListener() {
- // @Override
- // public void onClick(View v) {
- // counterArr.add(new Counter(MainActivity.this, index[0]));
- // counterArr.get(index[0]).createCounter();
- // linLayContainer.addView(counterArr.get(index[0]).getContainer());
- // index[0]++;
- // }
- //
- // });
- private void createLinearLayout() {
- String colorString;
- container.setLayoutParams(new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.MATCH_PARENT,
- LinearLayout.LayoutParams.MATCH_PARENT));
- container.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, this.layoutHeight));
- container.setOrientation(LinearLayout.HORIZONTAL);
- colorString = (this.index % 2 == 1) ? "#5279b7" : "#2a5fb2";
- container.setBackgroundColor(Color.parseColor(colorString));
- }
- private void createSubButton() {
- subButton = new Button(context);
- subButton.setLayoutParams(new LinearLayout.LayoutParams(buttonWidth, LinearLayout.LayoutParams.MATCH_PARENT, 0.5f));
- subButton.setText("-");
- subButton.setTextSize(buttonTextSize);
- subButton.setId(subButtonId);
- subButton.setGravity(Gravity.CENTER | Gravity.CENTER_HORIZONTAL);
- container.addView(subButton);
- sub = mainContainer.findViewById(subButtonId);
- sub.setOnClickListener(new MyOnClickListener() {
- @Override
- public void onClick(View v) {
- subCount();
- disp.setText(count.toString());
- }
- });
- }
- private void createTextView() {
- countDisp = new TextView(context);
- countDisp.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT, 2.0f));
- countDisp.setText(this.count.toString());
- countDisp.setTextSize(this.countTextSize);
- countDisp.setGravity(Gravity.CENTER | Gravity.CENTER_HORIZONTAL);
- countDisp.setTextColor(Color.BLACK);
- countDisp.setId(countTextId);
- container.addView(countDisp);
- disp = mainContainer.findViewById(countTextId);
- }
- private void createAddButton() {
- addButton = new Button(context);
- addButton.setLayoutParams(new LinearLayout.LayoutParams(buttonWidth, LinearLayout.LayoutParams.MATCH_PARENT, 0.5f));
- addButton.setText("+");
- addButton.setTextSize(buttonTextSize);
- addButton.setId(addButtonId);
- addButton.setGravity(Gravity.CENTER | Gravity.CENTER_HORIZONTAL);
- container.addView(addButton);
- add = mainContainer.findViewById(addButtonId);
- sub.setOnClickListener(this);
- }
- //-------------------------------------------SETTERS--------------------------------------------
- public void addCount() {
- this.count++;
- }
- public void subCount() {
- this.count--;
- }
- public void resetCount() {
- this.count = 0;
- }
- public void deleteCounter() {
- }
- // public void setName(String name) {
- // this.name = name;
- // }
- //-------------------------------------------GETTERS--------------------------------------------
- public String getCount() {
- return this.count.toString();
- }
- public int getIndex() {
- return this.index;
- }
- public LinearLayout getContainer() {
- return this.container;
- }
- @Override
- public void onClick(View v) {
- if (v.getId() == addButtonId) {
- addCount();
- disp.setText(count.toString());
- } else if (v.getId() == subButtonId) {
- subCount();
- disp.setText(count.toString());
- }
- }
- // public String getName() {
- // return this.name;
- // }
- }
- class MyOnClickListener implements View.OnClickListener {
- public MyOnClickListener() {
- }
- @Override
- public void onClick(View v) {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement