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를 작성
이제 다음에는 뭘 만들어야 하지...
'중단된 프로젝트 > GYM Partner' 카테고리의 다른 글
헬스 루틴 기록용 앱 만들기 - Navigation View 선택 해제 (0) | 2021.08.11 |
---|---|
헬스 루틴 기록용 앱 만들기 - 햄버거 버튼 전환 (0) | 2021.08.11 |
헬스 루틴 기록용 앱 만들기 - 프로젝트 리팩토링 (0) | 2021.08.09 |
헬스 루틴 기록용 앱 만들기#2 - 홈 화면 (0) | 2021.08.05 |
헬스 루틴 기록용 앱 만들기#1 - UI 초안 (0) | 2021.07.30 |