본문 바로가기

💻 Extracurricular/코뮤니티 모각코

모각코 < Kotlin 기초편 > - 14일차

✅ 텍스트 공유하기

⚡ ACTION_SEND 인텐트를 생성

  • "공유할 메시지" 부분에 원하는 텍스트를 넣을 수 있음
  • 비슷한 방식으로 다양한 콘텐츠(이미지, url 등) 공유 가능
val sendIntent = Intent().apply {
    action = Intent.ACTION_SEND
    putExtra(Intent.EXTRA_TEXT, "공유할 메세지")
    type = "text/plain"
}

 

⚡ Intent.createChooser()를 이용해 Intent 객체를 전달

  • startActivity로 실행
val shareIntent = Intent.createChooser(sendIntent, null)
startActivity(shareIntent)

✅ 적용하기

버튼을 클릭 시, 텍스트 공유창이 나오도록 적용

 

⚡ shareButton에 setOnClickListener 이용

 

👀 클릭 시, 중괄호 안의 부분이 실행

👀 그 안에 공유 인텐트를 생성, 실행하도록 코드 추가

val shareButton = findViewById<FloatingActionButton>(R.id.floatingActionButton)

shareButton.setOnClickListener {
    val sendIntent = Intent().apply {
        action = Intent.ACTION_SEND
        putExtra(Intent.EXTRA_TEXT, "공유할 메세지")
        type = "text/plain"
    }

    val shareIntent = Intent.createChooser(sendIntent, null)
    startActivity(shareIntent)
}

✅ 오늘의 문제 : 입력한 메모를 공유하기

 

👀 MemoActivity.kt

package com.comu.android.secretmemo

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.EditText
import com.google.android.material.floatingactionbutton.FloatingActionButton

class MemoActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_memo)
        val shareButton = findViewById<FloatingActionButton>(R.id.floatingActionButton)
        val editText = findViewById<EditText>(R.id.editText)


        shareButton.setOnClickListener {
            val sendIntent = Intent().apply {
                val text = editText.text.toString()
                action = Intent.ACTION_SEND
                putExtra(Intent.EXTRA_TEXT, text)
                type = "text/plain"
            }

            val shareIntent = Intent.createChooser(sendIntent, null)
            startActivity(shareIntent)
        }
    }
}

 

👀 activitymemo.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MemoActivity">

  <EditText
      android:id="@+id/editText"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_marginTop="32dp"
      android:ems="10"
      android:gravity="start|top"
      android:inputType="textMultiLine"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintHorizontal_bias="0.0"
      app:layout_constraintStart_toStartOf="parent"
      app:layout_constraintTop_toTopOf="parent"
      app:layout_constraintVertical_bias="0.0" />

  <com.google.android.material.floatingactionbutton.FloatingActionButton
      android:id="@+id/floatingActionButton"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:clickable="true"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintTop_toBottomOf="@+id/editText"
      app:layout_constraintStart_toStartOf="parent"
      app:layout_constraintHorizontal_bias="0.99"
      app:layout_constraintVertical_bias="0.99"
      app:srcCompat="@android:drawable/ic_menu_search" />

  </androidx.constraintlayout.widget.ConstraintLayout>

 

👀 실행결과

 

https://codemate.kr/@guswlsdl04/모각코-코틀린-기초편-14일차

 

🌈 모각코 <코틀린 기초편> - 14일차 by guswlsdl04 | 코드메이트

✅ 텍스트 공유하기 ⚡ ACTION_SEND 인텐트를 생성 "공유할 메세지" 부분에 원하는 텍스트를 넣을 수 있음 비슷한 방식으로 다양한 콘텐츠(이미지, url 등) 공유 가능 val sendIntent = Intent().apply { action

codemate.kr