본문 바로가기
Development/Android

[안드로이드] Android Fragment 사용 예제

by 푸민 2015. 10. 14.
반응형


안녕하세요 푸민입니다.

안드로이드에서는 4대 컨포넌트인 Activity, Service, BroadcastReceiver, ContentProvider 가 있습니다. 하지만 이게 견주어도 결코 떨어지지 않는 중요도를 가진 것이 바로 Fragment 입니다!


Fragment 는 한 액티비티 위에 여러가지 화면을 보여줄수 있습니다. 단지 뷰랑 다르게 프로세스를 따로 이용하기에 화면 구성에 사용하기 굉장히 좋은 컴포넌트입니다.


사용법을 알아볼까요?


1. 먼저 레이아웃을 만들어 줍니다.

- fragment_test01.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >


<TextView 

android:layout_width="match_parent"

android:layout_height="match_parent"

android:text="test1"

 />

    

</LinearLayout> 


- fragment_test02.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >


<TextView 

android:layout_width="match_parent"

android:layout_height="match_parent"

android:text="test2"

 />

        

</LinearLayout> 



2. Fragment 클래스를 만들어 줍니다.

- TestFragment1.java

public class TestFragment1 extends Fragment{


@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

return inflater.inflate(R.layout.fragment_test01, container, false);

}

}


- TestFragment2.java

public class TestFragment2 extends Fragment{


@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

return inflater.inflate(R.layout.fragment_test02, container, false);

}

}



3. Activity 가 사용할, 즉 Fragment 가 속해있는 레이아웃을 만듭니다.

- activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent" >


<com.test.fragment.TestFragment1 

android:layout_width="match_parent"

android:layout_height="match_parent"

android:id="@+id/test_02"

 />


<com.test.fragment.TestFragment2 

android:layout_width="match_parent"

android:layout_height="match_parent"

android:id="@+id/test_01"

 />

        

</FrameLayout>



4. 마지막으로 Activity 클래스를 생성해줍니다.

- MainActivity.java

public class MainActivity extends Activity {


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);


FragmentManager fm = getFragmentManager();


TestFragment1 frag1 = (TestFragment1)fm.findFragmentById(R.id.test_01);

TestFragment2 frag2 = (TestFragment2)fm.findFragmentById(R.id.test_02);

}

}


참쉽죠잉~?

반응형

댓글