안녕하세요 ~
안드로이드 어플공부를 막 시작하고있는 초보 입니다
자바공부와 같이 병행하면서 안드로이드를 해보고있어서 많이 부족해서 이렇게 질문 드립니다
package com.com.Sansu;
import java.util.*;
import android.app.*;
import android.content.*;
import android.os.*;
import android.text.*;
import android.view.*;
import android.view.inputmethod.*;
import android.widget.*;
public class main extends Activity {
int result = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//텍스트뷰 구현
TextView MyText = (TextView)findViewById(R.id.textview);
// 난수 정의
Random r = new Random(System.currentTimeMillis());
Random r2 = new Random(System.currentTimeMillis());
// 변수에 각각 난수 저장
int num1 = r.nextInt(30)+1;
int num2 = r2.nextInt(28)+1;
// 난수 곱셈값 char 변환후 저장
result = num1 * num2;
//TextView message
MyText.setText(+ num1 + " + " + num2 + " = 뭘까요?????");
//MyText.setText(+ num1 + " + " + num2 + " = " +(num1*num2));
// 버튼 생성(온클릭 리스너 생성해야됨)
Button button = (Button)findViewById(R.id.btn);
button.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v) {
// TODO Auto-generated method stub
// edittext Load
EditText edittext = (EditText)findViewById(R.id.answer);
// 이렇게 하면 etResult에 edittext 입력값 들어감
Editable etable = edittext.getText();
String etResult = etable.toString();
//edittext enter text down
InputMethodManager mInputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
mInputMethodManager.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
//int -> String
String Result_Two = Integer.toString(result);
//String 값을 int로 변환
//int numInt = Integer.parseInt(etResult);
if(Result_Two == etResult)
{
Toast.makeText(main.this, "정답입니다~", Toast.LENGTH_LONG).show();
}
else if(etResult != Result_Two)
{
Toast.makeText(main.this, "틀렸습니다~", Toast.LENGTH_SHORT).show();
}
}
});
}
}
그... 소스 하는거 그거는 어떻게 하는지 몰라서 죄송해요;;;
위와 같이 난수를 맹글어서 EditText에 답을 입력하고 확인버튼을 누르면 정답인지 아닌지 Toast 로 보여주는 프로그램을 해보고 있는데요..
산수의 답을 입력을 하고 확인을 누르면 무조건 틀렸다고 해서 ..ㅜㅜ
뭐가 잘못된건지 좀 봐주셨으면 합니다 ㅠ
EditText는 String 으로 받아서 처음에는 String -> int 로 변환해봤다가 안되길래
다시 int -> String 으로 바꾸고 해봐도 계속 틀렸다고만 해서 이렇게 질문 드립니다 ㅠ
제가 무엇을 간과하고 넘어간 것인가요??ㅠㅠ 바로 좀 잡아서 정답의 길로 인도좀 해주시면 감사하겠습니다 ㅠ
주말 마무리 잘하시고 다가오는 한 주 활기차게 시작하세요 ㅠ




if(Result_Two == etResult)
요걸 if(Result_Two.equals(etResult) 로 바꾸세요.. string type의 data 자체만 비교하는 것은 equals method를 써야 합니다.(java서적이나 인터넷으로 String 에 대해 검색해 보시면 매우 자주 언급되는 부분이므로 더 알아보시는걸 추천합니다)
그리고 한가지 더 위에서 난수 두개를 곱셈 해서 result에 넣는데, textView에는 왜 두개를 더하는 값을 물어보도록 돼 있는지 궁금하네요.