4. 하지만 sub_layout.xml은 그렇지 않다.
그래서 inflater를 이용하여 우선적으로
메모리상에 올려놔야 나중에 가져올 수 있다.
getSystemService를 통해서 시스템 객체를 참
조한다. 이것은 여러 개의 type이 있기 때문에
LayoutInflater로 casting한다.
5. public void button1Clicked(View v){
//MainActivity.java는 'setContentView(R.layout.activity_main)'를 통해서
//메모리에 올렸기 때문에 findViewById를 통해 container 레이아웃을 바로 찾는다.
LinearLayout container = (LinearLayout)findViewById(R.id.container);
//inflater는 메모리 상에 올려준다.
//즉 객체화등을 통해 뷰그룹 같은 것을 사용할 수 있게 해준다.
//getSystemService를 통해서 시스템객체를 참조한다.
//getSystemService는 여러개의 타입이 있어서 LayoutInflater 타입으로 casting한다.
LayoutInflater inflater =
(LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//inflater의 inflate를 통해서 sub_layout을 메모리상에 올리고 container에 붙여준다.
inflater.inflate(R.layout.sub_layout, container, true);
//sub_layout이 메모리 상에 있기 때문에 이 안에 있는 뷰그룹을 사용할 수 있다.
Button button = (Button)findViewById(R.id.button2);//container.findViewById도 됨.
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"부분화면의 버튼이 눌러졌습니다",
Toast.LENGTH_LONG).show();
}
});
6. public void button1Clicked(View v){
//MainActivity.java는 'setContentView(R.layout.activity_main)'를 통해서
//메모리에 올렸기 때문에 findViewById를 통해 container 레이아웃을 바로 찾는다.
LinearLayout container = (LinearLayout)findViewById(R.id.container);
//inflater는 메모리 상에 올려준다.
//즉 객체화등을 통해 뷰그룹 같은 것을 사용할 수 있게 해준다.
//getSystemService를 통해서 시스템객체를 참조한다.
//getSystemService는 여러개의 타입이 있어서 LayoutInflater 타입으로 casting한다.
LayoutInflater inflater =
(LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//inflater의 inflate를 통해서 sub_layout을 메모리상에 올리고 container에 붙여준다.
inflater.inflate(R.layout.sub_layout, container, true);
//sub_layout이 메모리 상에 있기 때문에 이 안에 있는 뷰그룹을 사용할 수 있다.
Button button = (Button)findViewById(R.id.button2);//container.findViewById도 됨.
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"부분화면의 버튼이 눌러졌습니다",
Toast.LENGTH_LONG).show();
}
});
inflate()를 이용해서 sub_layout을 메모리
상에 올리고 container에 붙여준다.
버튼을 클릭했을때 Toast message를 띄워
주기 위해 sub_layout 상의 버튼을 가져와
야 하는데, 이떄 sub_layout은 inflate()를
통해서 메모리상에 올려 놓았기 때문에 바
로 참조하여 가져올 수 있다.
container.findViewById()를 통해 참조를
해야하는데 그냥 findeViewById()를 해도
참조가 된다.
7. activity_main에서 '부분화면 띄우기' 버튼을 클릭하면 container layout 상에 sub_layout이 띄워진다.
sub_layout상에는 '부분화면에서 버튼클릭이벤트' 버튼이 있는데 이것을 클릭하면 Toast message가 뜬다.