AbsoluteLayout 에서 버튼을 배치하고 프로그램에서 랜덤으로 재배치 했는데
TextView 의 TEXT 를 변경하려 하는 배치가 초기로 다시 돌아 옵니다.

연습삼아 1~9까지 짝마추는 카드게임을 연습삼아 만들고 있는데요.

카드 맞추는것 까지 버튼의 택스트를 지우고 넣고 는 정상작동 되는데.
TextView의 TEXT 를 변경하려면 꼭 초기 main.xml 에 배치해놓은 상태로 돌아가는 현상이 나타나네요.

혹시나 해서 TextView 를 LinearLayout 에다 배치해보고 해도 안되고.
물론 해결책은 버튼을 LinearLayout 에 버튼을 3개씩 배치하고 숫자나 태그를 변경하는 방법으로 해도 되지만.
이미 해 놓은거 해결을 보고 싶거든요.


소스입니다.

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
 <LinearLayout 
 android:id="@+id/LinearLayout01" 
 android:layout_weight="1"
 android:layout_gravity="center"
 android:layout_width="wrap_content" 
 android:layout_height="100dip">
  <Button android:text="Start"
  android:layout_gravity="center_vertical" 
  android:id="@+id/on_Start" 
  android:layout_width="80px" 
  android:layout_height="48px" 
  android:tag="start"/>
 </LinearLayout>
 <AbsoluteLayout 
 android:id="@+id/LinearLayout02" 
 android:layout_weight="1"
 android:layout_gravity="center"
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent">
  <Button android:text="1" android:id="@+id/Button01" android:layout_width="48px" android:layout_height="48px" android:layout_x="100px" android:layout_y="0px" android:tag="1"/>
  <Button android:text="2" android:id="@+id/Button02" android:layout_width="48px" android:layout_height="48px" android:layout_x="148px" android:layout_y="0px" android:tag="2"/>
  <Button android:text="3" android:id="@+id/Button03" android:layout_width="48px" android:layout_height="48px" android:layout_x="196px" android:layout_y="0px" android:tag="3"/>
  <Button android:text="4" android:id="@+id/Button04" android:layout_width="48px" android:layout_height="48px" android:layout_x="100px" android:layout_y="48px" android:tag="4"/>
  <Button android:text="5" android:id="@+id/Button05" android:layout_width="48px" android:layout_height="48px" android:layout_x="148px" android:layout_y="48px" android:tag="5"/>
  <Button android:text="6" android:id="@+id/Button06" android:layout_width="48px" android:layout_height="48px" android:layout_x="196px" android:layout_y="48px" android:tag="6"/>
  <Button android:text="7" android:id="@+id/Button07" android:layout_width="48px" android:layout_height="48px" android:layout_x="100px" android:layout_y="96px" android:tag="7"/>
  <Button android:text="8" android:id="@+id/Button08" android:layout_width="48px" android:layout_height="48px" android:layout_x="148px" android:layout_y="96px" android:tag="8"/>
  <Button android:text="9" android:id="@+id/Button09" android:layout_width="48px" android:layout_height="48px" android:layout_x="196px" android:layout_y="96px" android:tag="9"/>
  <Button android:text="1" android:id="@+id/Button10" android:layout_width="48px" android:layout_height="48px" android:layout_x="100px" android:layout_y="144px" android:tag="1"/>
  <Button android:text="2" android:id="@+id/Button11" android:layout_width="48px" android:layout_height="48px" android:layout_x="148px" android:layout_y="144px" android:tag="2"/>
  <Button android:text="3" android:id="@+id/Button12" android:layout_width="48px" android:layout_height="48px" android:layout_x="196px" android:layout_y="144px" android:tag="3"/>
  <Button android:text="4" android:id="@+id/Button13" android:layout_width="48px" android:layout_height="48px" android:layout_x="100px" android:layout_y="192px" android:tag="4"/>
  <Button android:text="5" android:id="@+id/Button14" android:layout_width="48px" android:layout_height="48px" android:layout_x="148px" android:layout_y="192px" android:tag="5"/>
  <Button android:text="6" android:id="@+id/Button15" android:layout_width="48px" android:layout_height="48px" android:layout_x="196px" android:layout_y="192px" android:tag="6"/>
  <Button android:text="7" android:id="@+id/Button16" android:layout_width="48px" android:layout_height="48px" android:layout_x="100px" android:layout_y="240px" android:tag="7"/>
  <Button android:text="8" android:id="@+id/Button17" android:layout_width="48px" android:layout_height="48px" android:layout_x="148px" android:layout_y="240px" android:tag="8"/>
  <Button android:text="9" android:id="@+id/Button18" android:layout_width="48px" android:layout_height="48px" android:layout_x="196px" android:layout_y="240px" android:tag="9"/>
 
  <TextView 
  android:text="현재시도 : " 
  android:layout_gravity="center_vertical"
  android:layout_width="wrap_content" 
  android:textSize="16sp"
  android:layout_marginLeft="10dip"
  android:layout_x="0px"
  android:layout_y="336px"
  android:layout_height="wrap_content"/>
  <TextView 
  android:text="@string/clickCount" 
  android:id="@+id/TextView01" 
  android:layout_gravity="center_vertical"
  android:layout_width="wrap_content" 
  android:textSize="16sp"
  android:layout_marginLeft="10dip"
  android:layout_x="90px"
  android:layout_y="336px"
  android:layout_height="wrap_content"/>
  <TextView 
  android:text="최고 : " 
  android:layout_gravity="center_vertical"
  android:layout_width="wrap_content" 
  android:textSize="16sp"
  android:layout_marginLeft="50dip"
  android:layout_x="200px"
  android:layout_y="336px"
  android:layout_height="wrap_content"/>
  <TextView 
  android:text="@string/clickTotal" 
  android:id="@+id/TextView02" 
  android:layout_gravity="center_vertical"
  android:layout_width="wrap_content" 
  android:textSize="16sp"
  android:layout_marginLeft="10dip"
  android:layout_x="290px"
  android:layout_y="336px"
  android:layout_height="wrap_content"/>
 </AbsoluteLayout>
</LinearLayout>



cardGame.java
package com.cardgame;
import java.util.Random;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class CardGame extends Activity {
    /** Called when the activity is first created. */
 private Button _Button[] = new Button[18];
 private int one = 0;
 private int tow = 0;
 private int click = 0;
 private int total = 0;
 private Button _Buttoncheck[] = new Button[2];
 private boolean _isRun = true;
 private boolean _isStart = false;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
                
        _Button[0] = (Button) findViewById(R.id.Button01);
        _Button[1] = (Button) findViewById(R.id.Button02);
        _Button[2] = (Button) findViewById(R.id.Button03);
        _Button[3] = (Button) findViewById(R.id.Button04);
        _Button[4] = (Button) findViewById(R.id.Button05);
        _Button[5] = (Button) findViewById(R.id.Button06);
        _Button[6] = (Button) findViewById(R.id.Button07);
        _Button[7] = (Button) findViewById(R.id.Button08);
        _Button[8] = (Button) findViewById(R.id.Button09);
        _Button[9] = (Button) findViewById(R.id.Button10);
        _Button[10] = (Button) findViewById(R.id.Button11);
        _Button[11] = (Button) findViewById(R.id.Button12);
        _Button[12] = (Button) findViewById(R.id.Button13);
        _Button[13] = (Button) findViewById(R.id.Button14);
        _Button[14] = (Button) findViewById(R.id.Button15);
        _Button[15] = (Button) findViewById(R.id.Button16);
        _Button[16] = (Button) findViewById(R.id.Button17);
        _Button[17] = (Button) findViewById(R.id.Button18);
        
        findViewById(R.id.on_Start).setOnClickListener(MyButtonListener);
        
        for(int i=0; i<18; i++){
         _Button[i].setOnClickListener(MyButtonListener);
        }
    }
    private void initGame(){
        click = 0;
        ((TextView)findViewById(R.id.TextView01)).setText(""+click+"");
        _isStart = true;
    }
    
    private View.OnClickListener on_Click = new View.OnClickListener() {
     public void onClick(View v){
      Button A = (Button) v;
      Button Blank = (Button) findViewById(R.id.Button01);
      
      if (is_Vert(A, Blank) || is_Hori(A, Blank)) do_SwapButtons(A, Blank);
     }
    };
    
    private void do_SwapButtons(Button A, Button B) {
     int Left = A.getLeft();
     int Top = A.getTop();
     int Right = A.getRight();
     int Bottom = A.getBottom();
     
     A.layout(B.getLeft(), B.getTop(), B.getRight(), B.getBottom());
     B.layout(Left, Top, Right, Bottom);
    }
    
    private boolean is_Vert(Button A,Button B){
     return (A.getLeft() == B.getLeft()) && (Math.abs(A.getTop()-B.getTop()) < 50);
    }
    private boolean is_Hori(Button A,Button B){
     return (A.getTop() == B.getTop()) && (Math.abs(A.getLeft()-B.getLeft()) < 50);
    }
    Button.OnClickListener MyButtonListener = new Button.OnClickListener() {
        public void onClick(View v) {
         if(v.getTag().toString().equals("start")){
          _isStart = false;
         }
         if (_isStart == false){
          Random _Random = new Random();
          
          int i;
          for (i=0; i<1000; i++) on_Click.onClick(_Button[_Random.nextInt(17)]);
          for (i=0; i<18; i++) _Button[i].setText("");
          
          initGame();
          
         }else{
          if(one == 0){
           _Buttoncheck[0] = (Button)findViewById(v.getId());
           if (_Buttoncheck[0].getText().equals("")){ 
            one = Integer.parseInt(v.getTag().toString());
            _Buttoncheck[0].setText(""+one+"");
            click++;
           }
          }else{
           _Buttoncheck[1] = (Button)findViewById(v.getId());
           if(_Buttoncheck[1].getText().equals("")){
            tow = Integer.parseInt(v.getTag().toString());
            _Buttoncheck[1].setText(""+tow+"");
            if(one == tow){
             one = 0;
             tow = 0;
            }else{
             one = 0;
             tow = 0;
             _isRun = true;
             mHandler.sendEmptyMessageDelayed(0, 300);
            }
            click++;
           }
          }
          score();
         }
        }
    };
    
    public void score(){
     ((TextView)findViewById(R.id.TextView01)).setText(String.valueOf(click));
     int panjung = 1;
     int i;
     for(i = 0; i<18; i++){
      if(_Button[i].getText().equals("")){
       panjung = 1;
       break;
      }else{
       panjung = 0;
      }
     }
     if(panjung == 0){
      if(total != 0){
       if(total > click){
        total = click;
       }
      }else{
       total = click;
      }
      
      ((TextView)findViewById(R.id.TextView02)).setText(""+total+"");
      _isStart = false;
     }
    }
    
    Handler mHandler = new Handler() {              
        public void handleMessage(Message msg) {
           if (_isRun == false) return;
   _Buttoncheck[0].setText("");
   _Buttoncheck[1].setText("");
   _isRun = false;
        }
    };
}

해결이 안될까요.ㅠㅠ?