'2016/11/30'에 해당되는 글 1건

  1. 2016.11.30 Fragment 기초 예제 1

참고 URL : http://itpangpang.tistory.com/114

 

 

 

 

public class MainActivity extends AppCompatActivity {

        Button btn_move_page1;
        Button btn_move_page2;
        Button btn_move_page3;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            setup();

            movePage1();
        }
        private void setup()
        {
            btn_move_page1 = (Button) findViewById(R.id.btn_move_page1);
            btn_move_page2 = (Button) findViewById(R.id.btn_move_page2);
            btn_move_page3 = (Button) findViewById(R.id.btn_move_page3);

            btn_move_page1.setOnClickListener(myListener);
            btn_move_page2.setOnClickListener(myListener);
            btn_move_page3.setOnClickListener(myListener);
        }

        View.OnClickListener myListener = new View.OnClickListener(){
            @Override
            public void onClick(View view) {
                btn_move_page1.setSelected(false);
                btn_move_page2.setSelected(false);
                btn_move_page3.setSelected(false);

                switch (view.getId()){
                    case R.id.btn_move_page1:
                        movePage1();
                        break;
                    case R.id.btn_move_page2:
                        movePage2();
                        break;
                    case R.id.btn_move_page3:
                        movePage3();
                        break;
                }
            }
        };



        public void movePage1(){
            Page1 page1 = new Page1();
            //FragmentManager : Activity위(안)에서 Fragment와 Activity의 상호작용을 관리
            FragmentManager fragmentManager = getFragmentManager();

            //FragmentTransaction
            //  - 실질적으로 이 Transaction이  Activity위에 Fragment를 올려주고(add) 있던걸 빼고
            //    다시올리고(replace)  제거해주고(remove)  commit등 여러가지 중요한  활동이 가능하게 도와준다.
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.ll_page, page1);
            fragmentTransaction.commit();
        }

        public void movePage2(){
            Page2 page2 = new Page2();
            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.ll_page, page2);
            fragmentTransaction.commit();
        }

        public void movePage3(){
            Page3 page3 = new Page3();
            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.ll_page, page3);
            fragmentTransaction.commit();
        }

        //버튼 하단에 있는 LinearLayout에 보여줄 페이지 처리
        // - 이때 Activity라면 AppCompatActivity 를 extends 받아야 된다.
        // - extends를 Fragment로 하면서 Activity가 아니라 Fragment임을 알 수 있다.
        //   또한 onCreate()메소드가 아닌 onCreateView()메소드를 이용했다.
        public static class Page1 extends Fragment {
            @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                //화면을 가져오기 위해서 LayoutInflater 객체를 이용했다.
                //  - inflate() : xml을 실제 객체로 사용가능하게 하는 역할을 담당
                View view = inflater.inflate(R.layout.fragment_page1, container, false);
                return view;
            }
        }
        public static class Page2 extends Fragment {
            @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                View view = inflater.inflate(R.layout.fragment_page2, container, false);
                return view;
            }
        }
        public static class Page3 extends Fragment {
            @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                View view = inflater.inflate(R.layout.fragment_page3, container, false);
                return view;
            }
        }

}

 

 

 

'[Android] - 개념 > Fragment' 카테고리의 다른 글

Fragment 기초 예제 3  (0) 2016.12.04
Fragment 기초 예제 2  (2) 2016.12.04
Fragment 기본 개념  (0) 2016.11.29
Posted by 농부지기
,