기금넷 공식사이트 - 금 선물 - 해결 방법: 안드로이드에 컨트롤을 동적으로 삽입하려면 어떻게 해야 합니까?

해결 방법: 안드로이드에 컨트롤을 동적으로 삽입하려면 어떻게 해야 합니까?

제가 직접 코드를 드리겠습니다. 30 분 동안 썼어요, 시험을 봤어요 ~

운행할 때 결과를 볼 수 있어요 ~ 키를 뜯을 때 쪽지를 썼어요 ~

레이아웃 파일 레이아웃 내용:

--

& lt? Xml 버전 =" 1.0 "인코딩 ="utf-8"? & gt

& ltlinearlayout xmlns: Android = "/apk/RES/Android"

Android: orientation = "vertical" Android: layout _ width = "fill _ parent"

Android: layout _ height = "fill _ parent" Android: id = "@+id/linearlayout" >

& ltlinearlayout Android: id = "@+id/linearlayout 01"

Android: layout _ width = "wrap _ content" Android: layout _ height = "wrap _ content"> "

& lt 버튼 Android: layout _ height = "wrap _ content" Android: id = "@+id/add"

Android: text = "add" Android: layout _ width = "100px" > & lt/Button & gt;;

& lt 버튼 Android: layout _ height = "wrap _ content"

Android: layout _ width = "100px" Android: text = "remove" Android: id = "@+ & lt/Button & gt;;

& lt/linearlayout >

& lt TextView Android: id = "@+id/textview 01"Android: text = "이것은 textview 입니다."

Android: layout _ width = "fill _ parent" Android: gravity = "center" 입니다

Android: layout _ height = "50px" > & lt/TextView & gt;;

& lt/linearlayout >

--

활동에 해당하는 내용:

--

패키지 com.foxconn.dialog;

Android.app.activity 가져오기

Android.os.bundle 을 가져옵니다.

Android.view.view 가져오기 :

Android.view.view.onclicklistener 가져오기 :

Android.view.viewgroup.layoutparams 를 가져옵니다.

Android.widget.button 을 가져옵니다.

Android.widget.linearlayout 을 가져옵니다.

공용 클래스 DialogTest 확장 Activity 구현 OnClickListener {

개인 버튼 add_btn, remove _ BTN

Private linear layout linear layout;

Private intindex = 0;

/* * 활동을 처음 만들 때 호출됩니다. */

@ 덮어쓰기

Public void on create (bundle saved instancestate) {

Super.oncreate (savedinstancestate);

Setcontentview (r.layout.main);

Findviews ();

레지스터 ();

}

개인 void 레지스터 () {

Add _ btn.setonclicklistener (this);

Remove _ btn.setonclicklistener (this);

}

개인 void findViews() {

Add _ BTN = (button) findviewbyid (r.id.add);

Remove _ BTN = (button) findviewbyid (r.id.remove);

Linearlayout = (linearlayout) findviewbyid (r.id.linearlayout);

}

보호된 보기 createView() {

Button BTN = 새로 만들기 버튼 (this);

Btn.setid (인덱스++);

Btn.setLayoutParams (새로운 LayoutParams(LayoutParams). WRAP_CONTENT, LayoutParams. WRAP _ CONTENT)););

Btn.settext ("aaaaa"+index);

Btn 으로 돌아가기

}

개인 void removeView() {

//linearlayout 하위 뷰의 수를 가져옵니다.

Intcount = linearlayout.getchildcount ();

//전체 레이아웃을 살펴보고 두 개의 버튼을 추가 및 제거하는 레이아웃이 0 위치에 있습니다.

//count- 1 은 텍스트 중심의 textview 입니다.

//따라서 제거 시 0 만 있습니다

//각 제거는 count-2 위치, 즉 textview 위의 컨트롤 ~

If (count-2 > 0) {

///count-2 & gt;; 0 은 현재 linearlayout 에 세 개 이상의 하위 뷰가 있는지 확인하는 데 사용됩니다. 즉, add 를 클릭하여 추가한 버튼이 있습니다.

Linearlayout.removeviewat (count-2);

}

}

공용 void onClick (뷰 v) {

스위치 (v.getid ()) {

사례 번호 추가:

Linearlayout.addview (createview (),1);

깨뜨리다

시나리오 번호 삭제:

Removeview ();

깨뜨리다

기본값:

깨뜨리다

}

}

}

--