2013-07-13 2 views
0

저는 처음 안드로이드 프로그래머이고 팁 계산기를 만들려고합니다. 이것은 지금까지 작성한 코드입니다. 이것에 대해 두 가지 질문이 있습니다. 첫 번째는 왜 계산 버튼을 계산하지 않는 것입니까? 그리고이 코드가 깨끗하게 쓰여지면 초당은 무엇입니까? 아니면 잘못된 길을 가고 있습니까?기본 팁 계산기 Android Java

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class Fooi extends Activity implements OnClickListener { 
    EditText etBill, etPers, etPerc; 
    TextView tvTotal, tvTip, tvPerson; 
    Button bCalc, bReset; 

    double billamount = 0; 
    double percentage = 0; 
    double persons = 0; 
    double tipamount = 0; 
    double totaltopay = 0; 
    double perperson = 0; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.fooi); 

     Controls(); 
    } 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     switch (v.getId()) { 
     case R.id.bCalculate: 
      if (billamount == 0 | percentage == 0 | persons == 0) { 
       // toast text 
      } else { 
       Calculate(); 
      } 
      break; 
     case R.id.bReset: 
      etBill.setText(""); 
      etPerc.setText(""); 
      etPers.setText(""); 
      break; 
     } 
    } 

    private void Calculate() { 
     billamount = Double.parseDouble(etBill.getText().toString()); 
     percentage = Double.parseDouble(etPerc.getText().toString()); 
     persons = Double.parseDouble(etPers.getText().toString()); 

     tipamount = (billamount * percentage)/100; 
     totaltopay = billamount + tipamount; 
     perperson = totaltopay/persons; 

     tvTip.setText(Double.toString(tipamount)); 
     tvTotal.setText(Double.toString(totaltopay)); 
     tvPerson.setText(Double.toString(perperson)); 
    } 

    private void Controls() { 
     bCalc = (Button) findViewById(R.id.bCalculate); 
     bReset = (Button) findViewById(R.id.bReset); 
     bCalc.setOnClickListener(this); 
     bReset.setOnClickListener(this); 

     tvTotal = (TextView) findViewById(R.id.tvTotal); 
     tvTip = (TextView) findViewById(R.id.tvBill); 
     tvPerson = (TextView) findViewById(R.id.tvPerPerson); 

     etBill = (EditText) findViewById(R.id.etBill); 
     etPerc = (EditText) findViewById(R.id.etPercentage); 
     etPers = (EditText) findViewById(R.id.etPerson); 
    } 
} 

또한이 코드 줄에 대해서는 확실하지 않습니다. if (billamount == 0 | percentage == 0 | persons == 0) { // toast text 세 개의 EditText가 채워질 때만 계산하고 싶습니다. 누군가 내가 틀렸다는 것을 말해 줄 수 있습니까?

미리 감사드립니다.

+0

간단한 예제이기 때문에 IncrediApp의 대답에 따라 코드를 수정하면 코드가 나쁘지 않습니다. 자바 코딩 규칙을 따르라고 조언합니다. 메서드 이름은 소문자로 시작합니다. –

답변

0

코드는 당신이 thinggs를 제외하고 잘 작성 : 1) 귀하의 경우 절

if (billamount == 0 | percentage == 0 | persons == 0) 

에 "OR"조건 사이에 두 번 파이프와 그렇지 않은 단일 관, 사용

if (billamount == 0 || percentage == 0 || persons == 0) 

2) 당신은 계산 버튼을 당신의 onclick의 경우의 시작 부분)이 라인을 이동 (빈 검사를 추가 ... 계산하기 전에 editTexts에서 값을받지 못하고있어 :

billamount = Double.parseDouble(etBill.getText().toString()); 
percentage = Double.parseDouble(etPerc.getText().toString()); 
persons = Double.parseDouble(etPers.getText().toString()); 
+0

고마워요! 이것은 거의 모든 문제를 해결했습니다. 밖으로 분류하는 약간 그러나 나는 내가 거기에 갈 것이다라고 생각한다 – Wannabe