내가하고 싶은 것은 다른 변수를받을 수 있도록 run() 메서드를 변경하는 것입니다. 내가 사용할 수 있도록 player1life를 다른 것으로 변경하고 싶습니다. customHandler.postDelayed (updateTimerThread, 0);은 다른 하나 (예 : player2life)에 있습니다. 코드는 버튼이 눌려지면 변수가 값을 변경합니다.Runnable에서 메소드의 변수를 변경하는 방법은 무엇입니까?
참고 : 저는 완전히 안드로이드 개발의 초보자입니다.
내가 XY 문제를 냄새final android.os.Handler customHandler = new android.os.Handler();
final Runnable updateTimerThread = new Runnable()
{
public void run()
{ if(pressed) {
player1life--;
textView.setText(String.valueOf(player1life));
customHandler.postDelayed(this, 100);
}
}
};
leftButton1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()){
case MotionEvent.ACTION_DOWN :
pressed = true;
customHandler.postDelayed(updateTimerThread, 0);
leftButton1.setImageResource(R.drawable.arrownewred);
winFunction();
break;
case MotionEvent.ACTION_UP :
pressed = false;
leftButton1.setImageResource(R.drawable.arrownew); break;
}
return true;
}
});