안드로이드 개발 질문/답변
(글 수 45,052)
start라는 버튼에 온클릭 리스너를 달아주고요
그 버튼을 클릭하면
int array[] = new int[25];
setArray(array);
함수를 소환해서 버튼에 있는 텍스트를 바꾸고싶은데요 제가 초보라서그런지 실행해서 버튼을 클릭하면 에러가나네요..
도와주세요 ㅠ.ㅠ
===== 랜덤숫자를뽑아서 버튼배열에 넣는 함수
public void setArray(int array[]) {
boolean duplicated = false;
Random rand = new Random();
for (int i=0; i<array.length; i++) {
do {
duplicated = false; // 중복되지 않았다고 가정
array[i] = rand.nextInt(array.length) + 1; // 숫자하나 추출한 후
for (int j=0; j<i; j++) // 앞의 숫자들과 비교하여
if (array[i]==array[j]) // 같은 것이 존재하면
duplicated = true; // 중복되었다고 체크함
} while(duplicated);
}
for(int i=0; i<array.length;i++){
Buttons[i].setText(array[i]) ;
}
}
========================================================================================
로그켓 부문
06-23 05:21:43.350: ERROR/AndroidRuntime(529): Uncaught handler: thread main exiting due to uncaught exception
06-23 05:21:43.369: ERROR/AndroidRuntime(529): android.content.res.Resources$NotFoundException: String resource ID #0xc
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.content.res.Resources.getText(Resources.java:205)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.widget.TextView.setText(TextView.java:2809)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at ryu.beginner.PuzzleActivity.setArray(PuzzleActivity.java:269)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at ryu.beginner.PuzzleActivity$2.onClick(PuzzleActivity.java:142)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.view.View.performClick(View.java:2344)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.view.View.onTouchEvent(View.java:4133)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.widget.TextView.onTouchEvent(TextView.java:6510)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.view.View.dispatchTouchEvent(View.java:3672)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1712)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1202)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.app.Activity.dispatchTouchEvent(Activity.java:1987)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1696)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.view.ViewRoot.handleMessage(ViewRoot.java:1658)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.os.Handler.dispatchMessage(Handler.java:99)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.os.Looper.loop(Looper.java:123)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.app.ActivityThread.main(ActivityThread.java:4203)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at java.lang.reflect.Method.invokeNative(Native Method)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at java.lang.reflect.Method.invoke(Method.java:521)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at dalvik.system.NativeStart.main(Native Method)
========================================================================================
그 버튼을 클릭하면
int array[] = new int[25];
setArray(array);
함수를 소환해서 버튼에 있는 텍스트를 바꾸고싶은데요 제가 초보라서그런지 실행해서 버튼을 클릭하면 에러가나네요..
도와주세요 ㅠ.ㅠ
===== 랜덤숫자를뽑아서 버튼배열에 넣는 함수
public void setArray(int array[]) {
boolean duplicated = false;
Random rand = new Random();
for (int i=0; i<array.length; i++) {
do {
duplicated = false; // 중복되지 않았다고 가정
array[i] = rand.nextInt(array.length) + 1; // 숫자하나 추출한 후
for (int j=0; j<i; j++) // 앞의 숫자들과 비교하여
if (array[i]==array[j]) // 같은 것이 존재하면
duplicated = true; // 중복되었다고 체크함
} while(duplicated);
}
for(int i=0; i<array.length;i++){
Buttons[i].setText(array[i]) ;
}
}
========================================================================================
로그켓 부문
06-23 05:21:43.350: ERROR/AndroidRuntime(529): Uncaught handler: thread main exiting due to uncaught exception
06-23 05:21:43.369: ERROR/AndroidRuntime(529): android.content.res.Resources$NotFoundException: String resource ID #0xc
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.content.res.Resources.getText(Resources.java:205)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.widget.TextView.setText(TextView.java:2809)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at ryu.beginner.PuzzleActivity.setArray(PuzzleActivity.java:269)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at ryu.beginner.PuzzleActivity$2.onClick(PuzzleActivity.java:142)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.view.View.performClick(View.java:2344)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.view.View.onTouchEvent(View.java:4133)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.widget.TextView.onTouchEvent(TextView.java:6510)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.view.View.dispatchTouchEvent(View.java:3672)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1712)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1202)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.app.Activity.dispatchTouchEvent(Activity.java:1987)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1696)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.view.ViewRoot.handleMessage(ViewRoot.java:1658)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.os.Handler.dispatchMessage(Handler.java:99)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.os.Looper.loop(Looper.java:123)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at android.app.ActivityThread.main(ActivityThread.java:4203)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at java.lang.reflect.Method.invokeNative(Native Method)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at java.lang.reflect.Method.invoke(Method.java:521)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
06-23 05:21:43.369: ERROR/AndroidRuntime(529): at dalvik.system.NativeStart.main(Native Method)
========================================================================================
2010.06.23 16:16:54
답변주신거 감사합니다 제가 아직초보라서요 ㅠ.ㅠ 근데 제가 궁금한것은 지금 저 위의 코드대로하면
에러를뿜어내는데 제가 직접값을 입력해주면
예를들면)
for(int i=0; i<array.length;i++){
Buttons[i].setText("안녕하세요") ;
이렇게하면 정상적으로 출력이됩니다.. 제가 랜덤함수를 잘못꾸며서그런건가요?
에러를뿜어내는데 제가 직접값을 입력해주면
예를들면)
for(int i=0; i<array.length;i++){
Buttons[i].setText("안녕하세요") ;
이렇게하면 정상적으로 출력이됩니다.. 제가 랜덤함수를 잘못꾸며서그런건가요?
Random rand = new Random();
for (int i=0; i<array.length; i++) {
do {
duplicated = false; // 중복되지 않았다고 가정
array[i] = rand.nextInt(array.length) + 1; // 숫자하나 추출한 후
for (int j=0; j<i; j++) // 앞의 숫자들과 비교하여
if (array[i]==array[j]) // 같은 것이 존재하면
duplicated = true; // 중복되었다고 체크함
} while(duplicated);
}