스도쿠 응용 프로그램을 만들고 이동 카운터를 추가하여 사용자가 숫자를 입력 할 때마다 movecount와 함께 표시되는 textView를 갖 춥니 다.TextView setText() 및 append()가 OnClick 함수가 호출 될 때 충돌합니다
public class NumberButton extends Button implements OnClickListener {
private int number;
TextView moveCountText;
private int moves;
private String message;
public NumberButton(Context context, AttributeSet attrs) {
super(context, attrs);
setOnClickListener(this);
moveCountText = (TextView)findViewById(R.id.moveCountView);
}
@Override
public void onClick(View v){
moves++;
message="Move Count: "+ moves;
moveCountText.setText(message);
moveCountText.invalidate();
GameEngine.getInstance().setNumber(number);
}
public void setNumber(int number){
this.number = number;
}
}
문제는 setText에서 뷰가 비어 있다고 (null 객체) 말했지만 이유를 모르겠습니다. 다음은 textView XML입니다. 같은 내 승리의 활동에 무슨 일이 일어나고
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Move count: 0"
android:id="@+id/moveCountView"
android:layout_marginLeft="100dp"
android:layout_marginStart="114dp"
android:layout_marginTop="450dp"/>
는 오류가 의도 null 객체 여기
public void checkGame(){
int [][] sudGrid = new int[9][9];
for(int x = 0 ; x < 8 ; x++){
for(int y = 0 ; y < 8 ; y++){
sudGrid[x][y] = getItem(x,y).getValue();
}
}
if(SudokuChecker.getInstance().checkSudoku(sudGrid)){
Toast.makeText(context, "Congratulations!", Toast.LENGTH_LONG).show();
// opens victory screen
Intent nextScreen = new Intent(getApplicationContext(), VictoryActivity.class);
startActivity(nextScreen);
}
}
오류 메시지가
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at sudoku.view.buttonsgrid.NumberButton.onClick(NumberButton.java:33)
at android.view.View.performClick(View.java:5156)
at android.view.View$PerformClick.run(View.java:20755)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5832)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
그리고 XML되고 있다는 것이다
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Move count: 0"
android:id="@+id/moveCountView"
android:layout_marginLeft="100dp"
android:layout_marginStart="114dp"
android:layout_marginTop="450dp"/>
예외 메시지가 무엇 View.OnClickListner 을 구현? – m02ph3u5
질문을 할 때도 스택 추적을 게시하십시오. –
@ m02ph3u5 님이 오류 메시지를 추가했습니다. –