상세 컨텐츠

본문 제목

[안드로이드] 프래그먼트(Fragment)에서 액티비티(Activity) 데이터 전달하는 방법

안드로이드

by aries574 2022. 4. 12. 19:30

본문


이번 시간에는 프래그먼트에서 액티비티로 데이터

전달하는 방법을 알아보겠습니다. 


1. 실행 화면

2. 인터페이스 만들기

3. 프래그먼트 만들기

4. 메인 화면 구성 activity_main.xml

5. 메인 코드 구현 MainActivity.java


1. 실행 화면

 

2. 인터페이스 만들기

  - 설명 - 

 인터페이스는 클래스와는 다르게 메서드를 만들고,

 기능은 구현하지 않습니다. 인터페이스를 사용하는 쪽에서

 직접 원하는 기능을 구현합니다. 여기서는 프래그먼트에서

 기능을 구현해서, 데이터를 보내고, MainActivity에서 데이터를

 받을 것입니다. 

SendEventListener

public interface SendEventListener {

    public void sendMessage(String s);
}

2021.12.31 - [안드로이드] - [안드로이드 스튜디오] 자바 클래스 생성하는 방법

 

[안드로이드 스튜디오] 자바 클래스 생성하는 방법

이번 시간에는 안드로이드 스튜디오(AndroidStudio)에서 자바 클래스 생성하는 방법을 알아보겠습니다. 기본으로 안드로이드 스튜디오 프로젝트를 생성하면 아래 화면처럼 MainActivity가 기본으로 생

aries574.tistory.com

 

3. 프래그먼트 만들기

 MainFragment.java

public class MainFragment extends Fragment {

    SendEventListener sendEventListener;
    
    @Override
    public void onAttach(@NonNull Context context) {
        super.onAttach(context);

        try {
            sendEventListener = (SendEventListener) context;
        } catch (ClassCastException e) {
            throw new ClassCastException(context.toString() + " must implement SendEventListener");
        }
    }

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

        //버튼 기능 구현
        Button sendBtn = view.findViewById(R.id.sendBtn);
        sendBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                sendEventListener.sendMessage("프래그먼트에서 전달한 메시지");
            }
        });


        return view;
    }
}

fragment_main.xml

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

   <Button
       android:id="@+id/sendBtn"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center"
       android:textSize="30sp"
       android:text="클릭"/>
</FrameLayout>

 

 

4. 메인 화면 구성 activity_main.xml

 - 설명 -

 Fragment화면을 FrameLayout에 보여줄 것입니다. 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/framgeLayout"/>
</LinearLayout>

 

5. 메인 코드 구현 MainActivity.java

 - 설명 - 

 1. FragmentTransaction을 통해 Fragment을 FrameLayout에

 보여주는 기능을 구현합니다.

 2. 인터페이스 SendEventListener을 Implements 해서 sendMessage에서

 받은 message를 Toast로 알려줍니다. 

public class MainActivity extends AppCompatActivity implements SendEventListener {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MainFragment fragment = new MainFragment();
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.add(R.id.framgeLayout, fragment);
        transaction.commit();
    }


    @Override
    public void sendMessage(String message) {

        Toast.makeText(this, "message:" + message, Toast.LENGTH_SHORT).show();
    }
}//MainActivity

2022.04.11 - [안드로이드] - [안드로이드] 액티비티(Activity)에서 프래그먼트(Fragment) 데이터 전달하는 방법

 

[안드로이드] 액티비티(Activity) 에서 프래그먼트(Fragment) 데이터 전달하는 방법

이번 시간에는 액티비티(Activity)에서 프래그먼트(Fragment)로 데이터 전달하는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 프래그먼트 만들기 3. 메인 화면 구성 activity_main.xml 4. 메인 코드

aries574.tistory.com

2022.04.08 - [안드로이드] - [안드로이드] Tab Custom Animation part1 - 화면 구성

 

[안드로이드] Tab Custom Animation part1 - 화면 구성

이번 시간부터 TabLayout을 직접 만들어 애니메이션까지 넣어보는 방법을 알아보겠습니다. 이번 포스팅은 화면 구성을 해보겠습니다. 목차 1. 실행 화면 2. 테마 변경 3. 배경 색상 파일 만들기(drawab

aries574.tistory.com

2022.04.07 - [안드로이드] - [안드로이드] 코드(MainActivity)에서 배경 색상 바꾸는 다양한 방법

 

[안드로이드] 코드(MainActivity) 에서 배경색상 바꾸는 다양한 방법

이번 시간에는 코드에서 레이아웃이나 텍스트뷰들의 배경 색상을 바꾸는 다양한 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면 구성 activity_main.xml 3. 메인 코드 구현 MainActivity.java 1. 실

aries574.tistory.com

반응형

관련글 더보기

댓글 영역