안드로이드 앱(Kotlin|Java)/[2025~] 안드로이드 앱

Part1_Ch04_08 전화 앱 실행하기

heylo 2025. 4. 9. 15:35

1) phone 버튼 추가

MainActivity.kt

<TextView
    android:id="@+id/emergencyContactValueTextView"
    style="@style/Value"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="010-0000-0000"
    android:layout_marginEnd="8dp"
    app:layout_constraintBaseline_toBaselineOf="@id/emergencyContactTextView"
    app:layout_constraintEnd_toStartOf="@+id/phoneImageView"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="@id/guideLine" />

<ImageView
    android:id="@+id/phoneImageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_baseline_call_24"
    app:layout_constraintBottom_toBottomOf="@id/emergencyContactValueTextView"
    app:layout_constraintEnd_toEndOf="@id/nameValueTextView"
    app:layout_constraintTop_toTopOf="@id/emergencyContactValueTextView" />
    

2) 레이어 추가

Add helpers > Layer

Layer 로 emergencyContactValueTextView 와 phoneImageView 묶기

<androidx.constraintlayout.helper.widget.Layer
    android:id="@+id/emergencyContactLayer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:constraint_referenced_ids="emergencyContactValueTextView,phoneImageView"
    tools:ignore="MissingConstraints"
    tools:layout_editor_absoluteX="165dp"
    tools:layout_editor_absoluteY="247dp" />

3) 통화기능 추가 ( 암시적 intent )

명시적 intent

어느 화면으로 이동할 것인지, Activity 를 명명해준 경우

binding.goInputActivityButton.setOnClickListener 
    val intent = Intent(this, InputActivity::class.java)
    startActivity(intent)
}

암시적 intent

전화를 할 수 있는 앱은 여러가지가 있다.

따라서 전화를 할 수 있는 앱을 실행하도록 해줘. 라고 할 것이다.

binding.emergencyContactLayer.setOnClickListener {
        with(Intent(Intent.ACTION_VIEW)) {
            val phoneNumber = binding.emergencyContactTextView.text.toString()
                .replace("-","")
            data = Uri.parse("tel:$phoneNumber")
            startActivity(this)
        }
}

4) 실행화면

 

 

 


5) 추가구현할 내용

체크박스 선택 및 미선택 시 글자 위치 동일하게 만들기