2013-10-18 8 views
-1

자바에서 Android 용 기본 계산기를 만들고 있습니다. 나는 이전 입력으로 입력을 추가해야하는 마지막 단계에 갇혀있다. 코드에서보세요 :내 안드로이드 계산기 작동 방법

public void displayValue(){ 

    String mything = display.getText().toString(); 
    input = Integer.parseInt(mything); 

} 
public void number1(View view){ 
    if (input == 0){display.setText("");} 

    display.append(Integer.toString(1)); 
    displayValue(); 

} 
public void number2(View view){ 
    if (input == 0){display.setText("");} 

    display.append(Integer.toString(2)); 
    displayValue(); 

} 
public void plus(View view){ 
    displayValue();   //result= 0 
    result = result + input; //result= input 
    input = 0;     //input=0 

    //in this step input becomes 0 to let the user enter new number input but this 
    //input never add the old result and the equal shows the old result. 
} 
public void equal(View view){ 
    displayValue(); 
    display.setText(Integer.toString(result)); 

} 

은 내가 입력과 동일한 방법으로 행을 추가하고 결과를 추가하면 제가 정확한 답변을 얻을하지만 너무 마이너스 버튼을있을 것 같은 그런 거 도움이 될 아니에요 것으로 나타났습니다.

아이디어가 있으십니까?

감사합니다.

+0

예상되는 결과가 어디서 어떤 결과를 얻었는지 조금 더 잘 설명 할 수 있습니까? – codeMagic

+0

@codeMagic OK. 그것은 계산기입니다. 사용자는 몇 개의 숫자를 누릅니다. 'displayValue'메소드는 'input'에 저장된 int로 변경하고, 사용자가 + 또는 - 버튼을 누르면 'result'변수에 입력 한 숫자를 저장합니다. 그러면 입력이 다시 0이되고 사용자가 계산의 다른 쪽을 입력합니다. 그런 다음 등호를 눌러 결과를 얻습니다. 따라서 결과에 저장된 값은 두 번째 입력을 빼거나 더하고 결과를 화면에 표시합니다. 이것이 어떻게 작동하는지입니다. 하지만 제 문제는 두 번째 입력으로 결과를 계산할 수있는 기회를 얻지 못한다는 것입니다. –

답변

0

전체 코드가 포함되어 있지 않기 때문에 명확히 알기는 어렵지만 도움이 될 수 있습니다. 수학을하기 전에 어떤 장소에서 displayValue(); (으)로 전화하기 때문일 수 있습니까? 특히 plus 방법입니다.

0

마지막으로 해결책을 찾았습니다. 결과 계산과 새 입력에 대한 유일한 옵션은 등식입니다 (논리적으로 사용자가 등호 버튼을 누르면 방정식을 끝내기를 원하기 때문에). 따라서 각 마이너스에 대해 두 개의 부울 값과 더하기 계산을 추가했습니다. 그런 다음 추가 또는 마이너스 2 값에 대한 계산을 모두 추가했습니다. 그런 다음 사용자가 계산의 첫 번째 부분과 더하기 + 기호를 누르면 플러스의 부울 값이 true가되고 새 입력을 입력하고 등호를 치면 계산의 진정한 부분을 수행합니다. 글쎄, 설명하기가 약간 어렵지만 코드를 보면 내가 의미하는 바를 얻을 수있을 것입니다.

boolean whenMinus = false; 
boolean whenPlus = false; 

public void plus(View view){ 
    displayValue(); 
    result = input; 
    input = 0; 
    whenPlus = true; 
} 
public void minus(View view){ 
    displayValue(); 
    result = input; 
    input = 0; 
    whenMinus = true; 
} 
public void equal(View view){ 
    if (whenPlus == true){result = result + input; whenPlus = false;} 
    if (whenMinus == true){result = result - input; whenMinus = false;} 

    display.setText(Integer.toString(result)); 

} 

이 계산기를 올바르게 작성했는지 확신 할 수 없습니다. 하지만 어쨌든 내 문제가 해결되었습니다. 나에게 의견을 말하고 그것이 표준 방식인지 또는 해킹인지 여부를 알려주는 것이 좋습니다. 나는 어쨌든 프로가 아닙니다.

관련 문제