이 블로그 검색

2011년 3월 16일 수요일

뷰에 뷰를 추가하기 - AddView 하기

  
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        final LinearLayout inLayout = (LinearLayout)findViewById(R.id.inLayout); 
        //추가 될 곳을 지정 -> R.layout.main 안에 지정
   
        Button btn = (Button)findViewById(R.id.aaa);
         // 버튼을 누르면 새 뷰가 추가됨.
        btn.setOnClickListener(new Button.OnClickListener(){
         @Override
       public void onClick(View v)
      {
          LayoutInflater inflater = (LayoutInflater) getSystemService        (Context.LAYOUT_INFLATER_SERVICE);
          LinearLayout route_info_tab = (LinearLayout) inflater.inflate(R.layout.route_info_tab, null); 
    // 추가할 녀석(route_info_tab 이라는 다른 xml 파일에 있다.ㅎ)
    inLayout.addView(route_info_tab);
   //inLayout에 route_info_tab을 넣는다.
   }
        });
       
    }

<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"
    android:id="@+id/viewMain"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
<Button android:text="@+id/Button01"      // 버튼
  android:id="@+id/aaa"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
</Button>
<LinearLayout
 android:id="@+id/inLayout"        // 이렇게 첨가 되는 부분을 지정한다.
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
    </LinearLayout>
</LinearLayout>

댓글 2개:

  1. 작성자가 댓글을 삭제했습니다.

    답글삭제
  2. 좋은 자료 감사합니다. 큰 뷰(리니어같은)안에 작은 뷰를 여러개 넣고 싶었는데, 이 자료 같네요
    공부해보고 다시 오겠습니다.

    답글삭제