참고 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; } }
}
|