[Android] fragment를 사용하여 여러 화면 마이그레이션 수행

9542 단어 AndroidJava

이루고 싶은 일

  • Main Activity 버튼을 눌렀을 때
    Fragment에서 여러 화면을 표시할 수 있습니다

  • 필요한 물건

  • MainActivity.java
  • activity_main.xml
  • MainFragment.java
  • fragment_main.xml
  • ※ 4가지 화면을 표시하려면
    fragmentHoge.xml 4개, HogeFragment.xml 4개를 만들어야 합니다.

    1.MainActivity.java


    MainActivity.java
    public class MainActivity extends AppCompatActivity {
    
        public static Intent getStartIntent(LoginActivity loginActivity) {
            return new Intent(loginActivity, MainActivity.class);
        }
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
        Button button = findViewById(R.id.main_button);
            //ボタンが押下されたら、Frgmentを表示する
            main_button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //fragmentを呼びだす
                    // Fragmentを作成します
                    MainFragment fragment = new MainFragment();
                    // Fragmentの追加や削除といった変更を行う際は、Transactionを利用します
                    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
                    // 新しく追加を行うのでaddを使用します
                    transaction.add(R.id.fragment_layout, fragment);
                    // 最後にcommitを使用することで変更を反映します
                    transaction.commit();
                }
            });
        }
    }
    

    2.activity_main.xml

  • activity_main.xml에서 Fragment의 영역을 남깁니다
  • activity_main.xml
    <FrameLayout
                    android:id="@+id/fragment_layout"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"></FrameLayout>
    

    3.MainFragment.java


    MainFragment.java
    public class MainFragment extends Fragment {
    
        private TextView mTextView;
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
    
            // 画面初期化処理
            final View inflate = inflater.inflate(R.layout.fragment_main, container, false);
            TextView titleText = inflate.findViewById(R.id.textView);
            Button button = inflate.findViewById(R.id.button);
            return inflate;
        }
    
    }
    

    4.fragment_main.xml


    fragment_main.xml
    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
    
            <TextView
                android:id="@+id/textView"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_gravity="center"
                android:text="button" />
    
            <Button
                android:id="@+id/button"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_gravity="center"
                android:background="@color/gauge_init_color"
                android:text="button" />
    
        </LinearLayout>
    </android.support.constraint.ConstraintLayout>
    
  • 참고 사이트:
  • 좋은 웹페이지 즐겨찾기