Don't Repeat Yourself (DRY) is not working

  • Replies:0
Steve Ngai
  • Forum posts: 1

Jul 11, 2017, 11:27:02 AM via Website

Hi, I try to reduce some code by creating a class variable for num1 and num2 but it is not working. Can someone help?

                    int num1 = Integer.parseInt(input1.getText().toString());
                    int num2 = Integer.parseInt(input2.getText().toString());

This is my code now:

package com.eduvo.password_onlistener;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

// instance variable
private EditText input1, input2;
private Button button_sbm;
private TextView t1;
private int result;
private String resultLabel = "Result: ";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    addListenerOnButton();
}

public void addListenerOnButton() {
    input1 = (EditText)findViewById(R.id.editText1);
    input2 = (EditText)findViewById(R.id.editText2);
    t1 = (TextView)findViewById(R.id.textView);

    button_sbm = (Button)findViewById(R.id.btnSum);
    button_sbm.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {


                    int num1 = Integer.parseInt(input1.getText().toString());
                    int num2 = Integer.parseInt(input2.getText().toString());

                    result = num1 + num2;

                    t1.setText(resultLabel + Integer.toString(result));
                }
            }
    );

    button_sbm = (Button)findViewById(R.id.btnMinus);
    button_sbm.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {


                    int num1 = Integer.parseInt(input1.getText().toString());
                    int num2 = Integer.parseInt(input2.getText().toString());

                    result = num1 - num2;

                    t1.setText(resultLabel + Integer.toString(result));
                }
            }
    );

    button_sbm = (Button)findViewById(R.id.btnMultiply);
    button_sbm.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {


                    int num1 = Integer.parseInt(input1.getText().toString());
                    int num2 = Integer.parseInt(input2.getText().toString());

                    result = num1 * num2;

                    t1.setText(resultLabel + Integer.toString(result));
                }
            }
    );

    button_sbm = (Button)findViewById(R.id.btnDivide);
    button_sbm.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {


                    int num1 = Integer.parseInt(input1.getText().toString());
                    int num2 = Integer.parseInt(input2.getText().toString());

                    result = num1 / num2;

                    t1.setText(resultLabel + Integer.toString(result));
                }
            }
    );

}

}

Reply