2017-10-11 103 views
-4

這裏是我的代碼:如何在android studio中添加一個方法?

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

     final EditText txtFirstNum = (EditText) findViewById(R.id.txtFirstNum); 
     final EditText txtSecondNum = (EditText) findViewById(R.id.txtSecondNum); 
     final TextView txtResult = (TextView) findViewById(R.id.lblResult); 

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

       int num1 = Integer.parseInt(txtFirstNum.getText().toString()); 
       int num2 = Integer.parseInt(txtSecondNum.getText().toString()); 
       int result = num1 + num2; 
       txtResult.setText(result + ""); 
      } 
     }); 

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


       int num1 = Integer.parseInt(txtFirstNum.getText().toString()); 
       int num2 = Integer.parseInt(txtSecondNum.getText().toString()); 
       int result = num1 - num2; 
       txtResult.setText(result + ""); 
      } 
     }); 
    } 
} 

什麼,我基本上是想要做的是用我可以打電話,而不是重複相同的代碼行有點像這樣(不工作)的方法:

int num1; 
    int num2; 
    btnAdd.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 

      getNumbers(); 
      int result = num1 + num2; 
      txtResult.setText(result + ""); 
     } 
    }); 

...

private void getNumbers() 
{ 
    num1 = Integer.parseInt(txtFirstNum.getText().toString()); 
    num2 = Integer.parseInt(txtSecondNum.getText().toString()); 
} 
+0

,將工作,但我的猜測是,你有點迷茫範圍。在原始代碼中,num1和2是局部變量,它們不能像這樣直接更新,實例或類變量可以是 – Stultuske

+0

方法應該是int doOperation(int num1,int num2,int operationType){switch(operationType) {case ADD:return num1 + num2; case SUB:num1-num2; .....等等}}'...在button標籤中使用'operationType',你可以通過1'OnClickListener' – Selvin

回答

0

你必須使之類的NUM1 NUM2等性能

2

你爲什麼不創建兩個類似getNumber方法,但不是void

private int getFirstNumber() 
{ 
    return Integer.parseInt(txtFirstNum.getText().toString()); 
} 

private int getSecondNumber() 
{ 
    return Integer.parseInt(txtFirstNum.getText().toString()); 
} 

,並使用它們:

@Override 
    public void onClick(View v) 
    { 
     int result = getFirstNumber() + getSecondNumber(); 
     txtResult.setText(result + ""); 
    } 
相關問題