[ Android ] Android 개발 기초: ConstraintLayout, Intent, 데이터 전달, TextView 속성 정리
이번 포스팅에서는 안드로이드 앱 개발을 처음 시작할 때 알아야 할 기초 개념들을 정리했습니다.
특히 ConstraintLayout, Intent 데이터 전달, TextView 속성에 대해 적어 보았씁니다.
ConstraintLayout 주의사항
1. 부모 설정
- ConstraintLayout에서는 최소 2개의 부모를 설정해야 합니다.
- 상/하 중 하나와 좌/우 중 하나를 반드시 연결해야 합니다.
2. 종속 화살표
- 종속 화살표는 변동되는 요소에서 변동되지 않는 요소로 연결됩니다.
- 양쪽으로 연결된 경우 → 이를 체인(Chain)이라고 합니다.
3. 레이아웃 설정 팁
- + 버튼을 누르면 가장 가까운 부모에 자동으로 연결됩니다.
- 현재 위치를 기준으로 간격이 설정되므로 주의해야 합니다.
액티비티 추가
- Java Class로 직접 추가하면 매니페스트 파일 수정 등 복잡한 작업이 필요합니다.
- 더 간단히 하려면 New → Activity → Empty View Activity로 추가 !!
- 액티비티 생성 시 매니페스트 파일에 자동으로 등록됩니다.
Intent: 액티비티 간 화면 전환
1. Intent란?
- Intent는 안드로이드 앱의 4대 주요 컴포넌트 중 하나로, 액티비티 간 통신을 위한 메시지 객체입니다.
- 명시적 인텐트와 암시적 인텐트로 나뉩니다.
- 명시적 인텐트: 특정 액티비티를 지정하여 호출.
- 암시적 인텐트: 호출 대상을 지정하지 않음.
2. 명시적 인텐트 사용 예제
Intent intent01 = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent01);
- `MainActivity`에서 `SecondActivity`로 화면을 전환합니다.
- startActivity() 메서드를 호출해 인텐트를 전달합니다.
3. 데이터 전달
- Intent 객체에 데이터를 담아 다른 액티비티로 전달할 수 있습니다.
데이터 전달 예제
보내는 액티비티:
Intent intent01 = new Intent(MainActivity.this, SecondActivity.class);
intent01.putExtra("key01", "전달할 데이터");
startActivity(intent01);
받는 액티비티:
Intent data_receive = getIntent();
String receivedData = data_receive.getStringExtra("key01");
- putExtra(key, value): 데이터를 담는 메서드.
- getIntent(): 받은 인텐트를 가져오는 메서드.
- getStringExtra(key): 전달받은 데이터를 추출.
ConstraintLayout의 Baseline
- Baseline을 이용해 텍스트 요소의 높이를 맞출 수 있습니다.
- height를 `0dp`로 설정하고, 상하 부모를 연결하면 부모 크기에 따라 요소 크기도 자동으로 조정됩니다.
컴포넌트 아이디 주의사항
- 컴포넌트 아이디는 전역 변수로 사용됩니다.
- 동일한 프로젝트 내에서 중복된 아이디를 사용할 경우 오류가 발생합니다.
- 예: `MainActivity`에서 `btn01`을 사용했다면, `SecondActivity`에서 동일한 이름을 사용할 수 없습니다.
TextView 속성 정리
TextView 기본 코드
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Intent"
android:textSize="32sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
주요 속성 설명
- android:textSize: 텍스트 크기 설정 (단위: sp).
- app:layout_constraintStart_toStartOf: 부모의 시작점(Start)에 맞춤.
- app:layout_constraintTop_toTopOf: 부모의 상단(Top)에 맞춤.
레이아웃 속성 총정리
이 글은 대학 강의 내용을 기반으로 정리 했던 내용입니다 ! 수정할 점이나 궁금하신 점 있으시면 댓글 남겨주세요 :D