728x90
반응형

저번글에서 다시 만들어둔 Navigation Drawer에서는 item를 클릭해도 아무변화가 없다

이번에 클릭하면 해당 화면으로 전환되는 것을 만들어보자

 

저번에 하던 강좌의 Part3부분이다

https://www.youtube.com/watch?v=bjYstsO1PgI&t=214s 

 

 

 

 

Layout 추가

layout 폴더에 Layout Resource File를 추가한다

영상에서 RelativeLayout을 사용했기에 일단 따라해보자

 

당장 여기에 뭔가를 할것은 아니기 때문에 간단한 TextView만 추가

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="userInfo Fragment"
        android:textSize="30dp"
        android:layout_centerInParent="true"/>
</RelativeLayout>

비슷한 방식으로 운동목록, 운동추가, 루틴추가, 통계 Fragment도 간단하게 만들었다

 

Fragment class 추가

각각에 맞는 java 파일을 추가한다

그리고 extends로 Fragment를 추가

package com.lektion.gympartner;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;

public class userInfoFragment extends Fragment {

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_userinfo, container, false);
    }
}

또 4번 더 반복....

 

MainAcitivity 수정

NavigationView 추가

NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);

 

onNavigationItemSelected

먼저 MainActivity에 implements 속성을 추가

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{
...

 

Override Method 작성

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId())
        {
            case R.id.nav_userinfo:
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new userInfoFragment()).commit();
                break;
            case R.id.nav_list:
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new listFragment()).commit();
                break;
            case R.id.nav_addexercise:
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new addExerciseFragment()).commit();
                break;
            case R.id.nav_addroutine:
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new addRoutineFragment()).commit();
                break;
            case R.id.nav_statistics:
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new statisticsFragment()).commit();
                break;
        }

        drawer.closeDrawer(GravityCompat.START);

        return true;
    }

선택한 Item에 따라 화면을 전환해준다

 

그리고 onCreate 마지막에 아래 코드를 추가해서 처음 Fragment를 설정

        if (savedInstanceState == null)
        {
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new homeFragment()).commit();
        }

 

여기까지 하면 화면전환이 가능해진다

 

마지막으로 기존 프로젝트에 있던 homeFragment 관련 파일들을 모두 옮긴 후 homeFragment를 작성

 

이제 다음에는 뭘 만들어야 하지...