안드로이드 스튜디오에서 TextView와 Layout을
자바 코드 내에서 생성 및 수정 하면서 사용하고 있습니다.
그런데 setText를 하면 오류가 나면서 팅기더군요.
코드는 대충 아래와 같이 되어 있습니다.
------------------------------
질문으로 올린 코드에서 잘못된 부분이
있었습니다. task의 쓰레드 안에 thread의 쓰레드가
들어가있는 것으로 해놓았네요. 지금 뒤늦게 발견하고
수정했습니다. task의 쓰레드와 thread의 쓰레드는
따로따로 되어 있습니다.
------------------------------
public class ABC extends Activity
{
...
...
...
@Override
protected void onCreate(Bundle savedInstanceState)
{
...
...
...
Game game = new Game(this);
RelativeLayout screen = new RelativeLayout(game.getContext());
TextView text = new TextView(game.getContext());
...
...
...
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
setContentView(screen);
screen.addView(game);
game.start();
}
});
}
public Class Game extends TextureView implements TextureView.SurfaceTextureListener, View.OnTouchListener
{
public Game(Context context)
{
super(context);
setSurfaceTextureListener(this);
setOnTouchListener(this);
}
public void start()
{
text.setText("1단계");
screen.addView(text);
// 여기까지는 잘 되는 것 같은데...
task = new TimerTask()
{
@Override
public void run()
{
...
text.setText("2단계");
// 여기서 에러 메세지 창이 뜨면서 팅겨버립니다.
...
}
timer = new Timer();
timer.schedule(task, 5000, 5000);
// 5초 뒤 task가 실행 되는 것인데 ...
};
thread = new Thread(new Runnable()
{
@Override
public void run()
{
...
...
...
대충 위와 같은 방식으로 되어 있습니다.
원인을 알고 싶습니다. 도와주세요 ㅠㅠ