Android 화면 전환하는 다양한 방법
화면을 전환하는 방법에는 Intent를 사용해 Activity 전환을 하는 방법, InflaterLayout을 사용해 Activity안에있는 layout을 전환하는 방법, Fragment를 사용하는 방법이있다.
Intent
//P260
Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("num1", 1000);
startActivityForResult(intent, 100);
InflaterLayout
Activity를 상속받은 Class에서만 getSystemService() 를 호출할 수 있다. 다른 클래스에서는 Activity에서 생성될 때 context를 넘겨줘야 한다.
static LinearLayout container;
LayoutInflater inflater;
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.serve, container, true);
FrameLayout
FrameLayout안에 LinearLayout을 여러 개 추가해서 visible, invisible 방식으로 레이아웃을 관리한다.
Fragment
// Fragment를 만들 때는 Fragment를 상속받아서 만든다
public static class MainFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// mainlayout을 container 에 붙인다
View v = inflater.inflate(R.layout.mainlayout, container, false);
return v;
}
}
manager = getSupportFragmentManager();
// 처음 사용할 때는 add로 container에 Fragment를 붙인다
getSupportFragmentManager().beginTransaction().add(
R.id.container,
new MainFragment()
).commit();
// 이미 있는 경우 replace를 한다
manager.beginTransaction().replace( .. ).commit();