기금넷 공식사이트 - 금 선물 - 해결 방법: 안드로이드에 컨트롤을 동적으로 삽입하려면 어떻게 해야 합니까?
해결 방법: 안드로이드에 컨트롤을 동적으로 삽입하려면 어떻게 해야 합니까?
운행할 때 결과를 볼 수 있어요 ~ 키를 뜯을 때 쪽지를 썼어요 ~
레이아웃 파일 레이아웃 내용:
--
& 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 ();
깨뜨리다
기본값:
깨뜨리다
}
}
}
--