[ Android Studio ] #18. ToDoList 어플을 만들어보자 - Fragment 기능 설정

ma.caron_g·2022년 2월 2일
0
post-thumbnail

[ 프래그먼트 기능 설정하기 ]

[ 1. 프래그먼트 클래스 생성 ]

프래그먼트 기능을 넣기 위해
/app/java/com.study.todolist(패키지명)MainFragment클래스를 생성하고 Fragment를 상속합니다.

< 작성자도 공부중 >
향 후 오류가 났을 때나 디버깅할 때 상황을 알기 위해 TAG를 써주고

private static final String TAG = "MainFragment";

아래 코드도 추가해줍니다.

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

import androidx.fragment.app.Fragment;

public class MainFragment extends Fragment {

    private static final String TAG = "MainFragment";

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_main, container, false);

        initUI(rootView);

        return rootView;

    }

    private void initUI(ViewGroup rootView) {


    }
}

onCreateView 메서드는 프래그먼트가 화면 생성이 아닌 구성할 때, 즉 생성된 이후에 호출되는 역할을 합니다.
이 상황을 인플레이션 이라고 합니다

initUI() 메서드는 layoutManager와 어댑터를 이용하여 리사이클러뷰를 사용하는 역할을 할 것입니다.
이것은 어댑터를 만든 후에 다시 작성하겠습닌다.

다 작성하였으면 지금부터 MainActivity.java에 프래그먼트의 객체를 정의하고 몇 가지를 작성해봅시다.

[ 2. MainActivity.java 코드 작성 ]

MainActivity.java에도 태그

private static final String TAG = "MainActivity";

작성해줍니다.

그리고 onCreate()안에서 Fragment객체를 사용하기 위해 onCreate() 메서드 밖에서 Fragment 변수를 선언합니다.

Fragment mainFragment;

그 후 onCreate() 메서드 안에서 fragment를 객체로 할당 후 FragmentManagergetSupportFragmentManager() 메서드를 이용하여 이전에 만들었던 FrameLayoutfragment_main.xml 이 추가되도록 설정합니다.

mainFragment = new MainFragment();

getSupportFragmentManager().beginTransaction().replace(R.id.container, mainFragment).commit();

이왕 프래그먼트하는 김에 메인 화면의 saveButton도 클릭 이벤트 설정을 해줍시다.

Button btnAdd = findViewById(R.id.btnAdd);

btnAdd.setOnClickListener(new View.onClickListener() {
    @Override
    public void onClick(View view) {
    
        saveToDo();
    
        Toast.makeText(getApplicationContext(), " 추가되었습니다.", Toast.LENGTH_SHORT).show();
    
    }
    private void saveToDo() {
    
    }
}

btnAdd을 누르면 EditText에 입력한 글들이 저장되고 추가되었다고 메시지가 나와야합니다.

Toast.makeText를 이용해 메시지를 나오게하고 saveToDo()메서드를 이용해 저장합니다.
이 메서드는 데이터베이스를 만든 뒤 더 작성하고 일단 onCreate메서드 밖에 saveToDo 메서드를 정의해 놓읍시다.

profile
다른 사람이 만든 것을 소비하는 활동보다, 내가 생산적인 활동을 하는 시간이 더 많도록 생활화 하자.

0개의 댓글