从2个字段乘法,变量太多

时间:2017-06-07 19:52:44

标签: java android

我练习Android中的初学者技能,现在我做了2个editText得到2个数字并在下一个editText显示得分的应用程序

这样做是一种好习惯吗?我相信更好的程序员有最短的方法来做到这一点。

public class MainActivity extends AppCompatActivity {

    private Button button;
    private EditText editText,editText2,editText3;
    private String a,b,c;
    private Double x1,x2,x3;

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

        button = (Button) findViewById(R.id.button);
        editText = (EditText) findViewById(R.id.editText);
        editText2 = (EditText) findViewById(R.id.editText2);
        editText3 = (EditText) findViewById(R.id.editText3);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                a = editText.getText().toString();
                b = editText2.getText().toString();
                x1 = Double.parseDouble(a);
                x2 = Double.parseDouble(b);

                calc(x1,x2);

            }
        });

    }

    private void calc(double x1, double x2){

        x3 = x1 * x2;
        c = String.valueOf(x3);
        editText3.setText(c);


    }

1 个答案:

答案 0 :(得分:0)

  

正如MacLean Sochor所述,您无法减少代码,因为这些代码   是您必须执行的确切步骤。

无论如何,您可以使用以下步骤来减少代码,从而使其可读

我一直遵循的一个建议是以XML布局分配侦听器:

<Button
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:text="@string/multiply" // multiply is '*' in strings.xml
    android:onClick="multiply" /> // Here you are assigning click listener

为点击侦听器指定合适的名称使其可读如果有人认为该方法不接受执行其名称所暗示的任务所需的参数。

protected void multiply(View); // View argument is passed instead of two  numbers

构建代码的高级技术(减少副作用)包括Data Binding。观看Data Binding -- Write Apps Faster (Android Dev Summit 2015),快速了解data Binding

其他建议:

  1. 通过为变量赋予有意义的名称来重构变量,例如,x1,x2和x3可以重命名为operand,otherOperand和product。 (注意使用单词&#39;其他&#39;。我没有使用firstOperand,secondOperand因为顺序在乘法中无关紧要。)
  2. 避免将成员变量用于仅用于函数的值。例如,将建议1应用于变量a,b和c,然后在onClick()calc()方法中移动它们。
  3. 希望这有帮助。