이번 시간에는 프래그먼트(Fragment)에서 액티비티(Activity)로 데이터를 전달하는 방법에 대하여 알아보겠습니다.
- 설명 -
1. 프래그먼트에서 액티비티로 데이터를 전달하기 위한 인터페이스
2. 틀만 만들고 기능은 implement 한 클래스에서 구현합니다.
interface SendEventListener {
fun sendMessage(message: String)
}
2022.01.08 - [안드로이드] - [안드로이드 스튜디오] 프래그먼트(Fragemnt) 만드는 방법
[안드로이드 스튜디오] 프래그먼트(Fragemnt) 만드는 방법
이번 시간에는 안드로이드 스튜디오에서 프래그먼트 화면을 추가하는 방법을 알아보겠습니다. app 선택 -> 마우스 오른쪽 -> New -> Fragment 다양한 버전의 Fragment가 있어 쓰임에 따라 골라 만드시면
aries574.tistory.com
- 설명 -
메시지를 전달하는 Button
<?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/send_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="전송"
android:textSize="20sp"
android:textStyle="bold" />
</FrameLayout>
- 설명 -
1. sendEventListener: SendEventListener
인터페이스 객체 생성
2. sendEventListener = context as SendEventListener
인터페이스 객체 초기화
3. sendEventListener.sendMessage("프래그먼트에서 전달한 메시지")
메인액티비티에서 sendMessage 함수를 구현하여 데이터를 받을 것입니다.
class MainFragment : Fragment() {
//객체 생성
lateinit var sendEventListener: SendEventListener
override fun onAttach(context: Context) {
super.onAttach(context)
//초기화
sendEventListener = context as SendEventListener
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val view: View = inflater.inflate(R.layout.fragment_main, container, false)
//객체 생성
val sendBtn: Button = view.findViewById(R.id.send_btn)
sendBtn.setOnClickListener {
//값만 전달
sendEventListener.sendMessage("프래그먼트에서 전달한 메시지")
}
return view
}
}
- 설명 -
프래그먼트 화면 보여줄 FrameLayout
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context=".MainActivity">
<FrameLayout
android:id="@+id/frameLayout"
android:layout_width="match_parent"
android:layout_height="200dp" />
</RelativeLayout>
- 설명 -
1. class MainActivity : AppCompatActivity(), SendEventListener
메인액티비티에 SendEventListener 구현
2. override fun sendMessage(message: String)
프래그먼트에서 보낸 메시지 message로 받음
class MainActivity : AppCompatActivity(), SendEventListener{
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//객체 생성
val mainFragment: MainFragment = MainFragment()
val manager: FragmentManager = supportFragmentManager
val transaction: FragmentTransaction = manager.beginTransaction()
//프래그먼트 추가
transaction.add(R.id.frameLayout, mainFragment)
//적용
transaction.commit()
}//onCreate
override fun sendMessage(message: String) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show()
}
}
2022.07.10 - [안드로이드] - [안드로이드 코틀린] 자동완성 텍스트뷰 쉽게 만드는 방법
[안드로이드 코틀린] 자동완성 텍스트뷰 쉽게 만드는 방법
이번 시간에는 입력한 텍스트와 비슷한 글자를 보여줘서 자동 완성할 수 있는 기능을 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면 구현 activity_main.xml 3. 메인 코드 구현 MainActivity.kt 1..
aries574.tistory.com
2022.07.11 - [안드로이드] - [안드로이드 코틀린] 스피너(spinner) 드롭다운 사용방법
[안드로이드 코틀린] 스피너(spinner) 드롭다운 사용방법
이번 시간에는 여러 개의 아이템 중 하나를 선택하는 스피너(Spinner)에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면 구현 activity_main.xml 3. 메인 코드 구현 MainActivity.kt 1. 실행..
aries574.tistory.com
2022.07.15 - [안드로이드] - [안드로이드 코틀린] 액티비티(Activity)에서 프래그먼트(Fragment)로 데이터 보내는 방법
[안드로이드 코틀린] 액티비티(Activity)에서 프래그먼트(Fragment)로 데이터 보내는 방법
이번 시간에는 액티비티(Activity) 화면에서 프래그먼트(Fragment) 화면으로 데이터를 전달하는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 프래그먼트 만들기 MainFragment.kt 3. 메인 화면 구현
aries574.tistory.com
[안드로이드 코틀린] 포커스 이벤트 숫자(천 단위) 콤마 넣는 방법 (0) | 2022.07.18 |
---|---|
[안드로이드 코틀린] OnClickListener onClick 하나로 다중 버튼 이벤트 설정하기 (0) | 2022.07.17 |
[안드로이드 코틀린] 액티비티(Activity)에서 프래그먼트(Fragment)로 데이터 보내는 방법 (0) | 2022.07.15 |
[안드로이드 코틀린] Custom Spinner 쉽게 만드는 방법 part2 (0) | 2022.07.14 |
[안드로이드 코틀린] Custom Spinner 쉽게 만드는 방법 part1 (0) | 2022.07.13 |
댓글 영역