마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

입력된 계산식에 따라 자동계산 후 출력하는부분 알려주세요

0 추천

public class fifth extends Activity {

 public void onCreate(Bundle savedInstenceState) {
  super.onCreate(savedInstenceState);
  setContentView(R.layout.fifthmain);

  // 데이터 가져오기
  Intent intent = getIntent();
  String str1 = intent.getExtras().getString("minimum");
  String str2 = intent.getExtras().getString("maximum");
  String str3 = intent.getExtras().getString("buy");
  String str4 = intent.getExtras().getString("sale");
  String str5 = intent.getExtras().getString("value");

  TextView min1 = (TextView) findViewById(R.id.min1);
  TextView max1 = (TextView) findViewById(R.id.max1);
  TextView buy1 = (TextView) findViewById(R.id.buy1);
  TextView sal1 = (TextView) findViewById(R.id.sal1);
  TextView val1 = (TextView) findViewById(R.id.val1);

  // 표시하기
  min1.setText("최소 : " + str1);
  max1.setText("최대 : " + str2);
  buy1.setText("구입 : " + str3);
  sal1.setText("판매 : " + str4);
  val1.setText("가치 : " + str5);

  // 문자를 숫자로 변환
                int a = Integer.parseInt(str1);
  int b = Integer.parseInt(str2);
  int c = Integer.parseInt(str3);
  int d = Integer.parseInt(str4);
  int e = Integer.parseInt(str5);

  // 계산

  int f = (a + b) / 2; // 평균
  int g = (b - a) / 6; // 표준편차
  int h = (d - c) / (d - e); // 가치

  // h값에 대응하는 z값 찾기
  int z = 0;
  if (h < 0.075) {
   z = (int) -1.65;
  } else if (h < 0.125) {
   z = (int) -1.29;
  } else if (h < 0.175) {
   z = (int) -1.04;
  } else if (h < 0.225) {
   z = (int) -0.85;
  } else if (h < 0.275) {
   z = (int) -0.68;
  } else if (h < 0.325) {
   z = (int) -0.53;
  } else if (h < 0.375) {
   z = (int) -0.39;
  } else if (h < 0.425) {
   z = (int) -0.26;
  } else if (h < 0.475) {
   z = (int) -0.13;
  } else if (h < 0.525) {
   z = (int) 0;
  } else if (h < 0.575) {
   z = (int) 0.13;
  } else if (h < 0.625) {
   z = (int) 0.26;
  } else if (h < 0.675) {
   z = (int) 0.39;
  } else if (h < 0.725) {
   z = (int) 0.53;
  } else if (h < 0.775) {
   z = (int) 0.68;
  } else if (h < 0.825) {
   z = (int) 0.85;
  } else if (h < 0.875) {
   z = (int) 1.04;
  } else if (h < 0.925) {
   z = (int) 1.29;
  } else if (h <= 1) {
   z = (int) 1.65;
  }

  final int res = g * z + f;



  Button result = (Button) findViewById(R.id.result);
  result.setOnClickListener(new Button.OnClickListener() {

   private TextView textResult;

   @Override
   public void onClick(View v) {
    textResult.setText(res);
   }
  });

 }
}

책 한권하서 독학하고 있습니다. 컴퓨터 프로그래밍 상식이 하나도 없어 너무 어렵습니다.

사전에 입력해둔 수식에 따라 새로 입력된 변수가 계산되어 버튼을 누르면 결과값을 보여주는 어플을 만들고 있는데

앞 액티비티에서 데이터를 받는데까지는 성공했는데

계산하는 부분과  버튼을 누르면 결과값을 출력하는 부분이 진행이 안됩니다.

책이나 이전 질문들 아무리 찾아봐도 모르겠습니다.

도와주세요..ㅜㅜ

스노우맨 (120 포인트) 님이 2015년 3월 16일 질문
아래 답변에 첨언하면, textResult 도 xml에서 찾아야겠죠
친절하고 빠른 답변 감사드립니다^^

1개의 답변

0 추천

질문을 할 때는 어떤 오류가 나고 있는지를 상세하게 적어야 합니다. 

 

아마  setText에 String이 아닌 int 가 들어가서 그런 것 같은데, Integer.valueOf(res) 로 바꿔보세요 

쎄미 (162,410 포인트) 님이 2015년 3월 16일 답변
로그캣을 보시면 어느라인에서 에러가 나고있다고 딱 집어줍니다.
그리고 에러가 뭐때문에 나는에러인지도 대충 알려주죠. 쎄미님 말씀대로,
onClick 메소드에 있는.. setText 때문입니다.
setText() 메소드는 괄호 안에 들어가는 변수형이 String 입니다. String를 넣어야
하는데 int 를 넣고있어서 에러가 나는겁니다. 그럼 int 를 String로 변환해줘야 하는데, 쎄미님께서 제시하신 방법이나
String.format("%d", res);
로 해도 됩니다.
친절하고 빠른답변 감사드립니다.
그런데.. 모르겠어요..ㅜㅜ
제 무지를 탓해야 하겠죠..
xml이 이상한것일수도 있고...
암튼 관심가져주셔서 감사드립니다!!
...