custom alerat dialog 를 만드는데요...


일단 메인 클래스에서


Context mContext = m_mapcontrol.getContext();

LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);

View layout = inflater.inflate(R.layout.camera,(ViewGroup) findViewById(R.id.ScrollView01));

MyInfoTool infotool = new MyInfoTool(m_mapcontrol, layout);


이러한 식으로  MyInfoTool  클래스에 인자를 전달 합니다.호출을 합니다.


MyInfo 클래스 안의 터치리스너 내용 입니다.


우서 인자는 이런식으로 생성자를 통해서 넘겨 받고요....

public MyInfoTool(MapControl mapcontrol, View layout)

{

m_mapcontrol = mapcontrol;

m_layout = layout;

}


AlertDialog.Builder aDialog = new AlertDialog.Builder(m_mapcontrol.getContext());//여기서buttontest는 패키지이름

aDialog.setTitle("속성정보");

aDialog.setView(m_layout);

aDialog.setNegativeButton("확인", new DialogInterface.OnClickListener() {

           public void onClick(DialogInterface dialog, int which) {


            }

});

AlertDialog ad = aDialog.create();

ad.show();


그런데 한번은 실행이 잘되는데....

한번 더하게 되면 에러가 납니다. 이유를 모르겠습니다.


그리고 맨위에 적어 놓은 메인클래스의 내용을 한번 더 실행하면 에러는 나질 않습니다.

그런데 그렇게는 할 수 없는 상황이고요.....ㅜㅜ

반복하면 아래의 클래스 내용만 반복되서 실행되는 상황입니다.


에러는 ad.show() 부분에서 에러가 납니다.


문제는 아래와 같습니다.


03-16 17:23:32.638: E/AndroidRuntime(957): FATAL EXCEPTION: main

03-16 17:23:32.638: E/AndroidRuntime(957): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

03-16 17:23:32.638: E/AndroidRuntime(957): at android.view.ViewGroup.addViewInner(ViewGroup.java:3344)

03-16 17:23:32.638: E/AndroidRuntime(957): at android.view.ViewGroup.addView(ViewGroup.java:3215)

03-16 17:23:32.638: E/AndroidRuntime(957): at android.view.ViewGroup.addView(ViewGroup.java:3195)

03-16 17:23:32.638: E/AndroidRuntime(957): at com.android.internal.app.AlertController.setupView(AlertController.java:401)

03-16 17:23:32.638: E/AndroidRuntime(957): at com.android.internal.app.AlertController.installContent(AlertController.java:241)

03-16 17:23:32.638: E/AndroidRuntime(957): at android.app.AlertDialog.onCreate(AlertDialog.java:336)

03-16 17:23:32.638: E/AndroidRuntime(957): at android.app.Dialog.dispatchOnCreate(Dialog.java:340)

03-16 17:23:32.638: E/AndroidRuntime(957): at android.app.Dialog.show(Dialog.java:253)