공부 정리/안드로이드(6)
-
안드로이드 fragment replace
프래그먼트에서 프래그먼트로 화면을 전환할 때 FragmentManager를 통해서 replace()를 하면 되지만 이 작업이 반복될 경우 코드가 길어지고 난잡해질 수 있습니다. 이를 해결하기 위해서 프래그먼트를 씌운 액티비티에서 메소드화를 하면 사용하기 편합니다. public void replaceFragment(Fragment fragment) { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.container, fragment); ft.addToBackStack(null); ft.commit(); } public class ExFragment extends Fragment { Button ..
2020.07.12 -
안드로이드 FragmentManager
getSupportFragmentManager()는 안드로이드 이전 버전들에서도 프래그먼트를 사용할 수 있도록 만든 appcompat_v7 라이브러리 프로젝트에서 지원하는 기능입니다. 따라서 getFragmentManager()로 쓰지 말고 getSupportFragmentManager()로 쓰는 것이 좋습니다. FragmentManager 클래스는 런타임 시 활동에 프래그먼트를 추가, 삭제 및 교체할 수 있는 메서드를 제공합니다. 프래그먼트 추가 또는 삭제와 같은 트랜잭션을 실행하려면 FragmentManager를 사용하여 FragmentTransaction을 생성해야 하며 이 클래스에서는 다른 프래그먼트 트랜잭션을 추가, 삭제, 교체 및 실행하는 API를 제공합니다. 프래그먼트를 사용중에 삭제와 교체..
2020.07.12 -
안드로이드 프래그먼트 - 2
메인 액티비티에서 fragment 클래스를 추가합니다. fragment.xml에서 버튼을 추가합니다. public class MainFragment extends Fragment { ... Button button = (Button) rootView.findViewById(R.id.button1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MainActivity activity = (MainActivity) getActivity(); activity.onFragmentChanged(0); } }); ... fragment에서 추가한 버튼에 클릭 리스너로 연결합니다. 버튼이 눌렸..
2020.07.12 -
안드로이드 프래그먼트 - 1
액티비티는 하나의 화면을 구성할 때 필요한 여러 가지 속성들을 사용하며 안드로이드 시스템에서 관리하는 애플리케이션 구성 요소이므로 액티비티 안에 액티비티를 넣는 것은 단말의 리소스를 많이 사용하는 비효율적인 방법이 됩니다. 그래서 프래그먼트라는 해결법을 생각합니다. 프래그먼트 1. 액티비티를 본떠 만든 것이라 액티비티가 동작하는 방식과 아주 유사합니다. 액티비티 위에 올라가도록 만들었기 때문에 액티비티가 시스템 역할을 하게 되고 액티비티보다 훨씬 가볍게 화면 구성을 할 수 있다는 장점이 있습니다. 또한 프래그먼트를 위한 XML 레이아웃과 프래그먼트를 위한 소스 파일이 한 쌍으로 만들어지고 이 프래그먼트 객체를 필요할 때 액티비티에 사용할 수 있기 때문에 독립적으로 사용할 수 있게 됩니다. 2. 프래그먼트..
2020.07.12