본문 바로가기
프로그래밍/안드로이드

#7.안드로이드 액티비티, 뷰

by -현's- 2023. 1. 15.
반응형
안드로이드 액배티비, 뷰

 

액티비티와 뷰

액티비티는 앱의 실행단위인 컴포넌트이고 버튼, 문자, 이미지를 노출시키는 클래스를 뷰 클래스라고 합니다.

액티비티 내에 뷰 클래스를 구성하여 화면을 출력합니다

액티비티에 뷰를 출력하는 함수가 setContentView()함수입니다.

액티비티가 도화지이고 뷰 클래스가 붓이라고 생각하면 됩니다.

액티비티와 레이아웃xml

 

반응형
UI작성 방법 - 자바 vs 레이아웃 XML

안드로이드 UI를 작성하는 방법은 2가지가 있습니다.

자바코드로 만드는 방법과 레이아웃XML로 만드는 방법이 있습니다.

 

자바와 레이아웃 XML중 어떤 방법을 선택할지는 개발자 선택사항이지만 자바로 구성하면 코드가 길어지고 가독성이 떨어집니다.

그래서 XML로 하는게 효율적이라 추천드립니다.

 

*자바로 구성하는 방법

아래처럼 버튼 클래스, 레이아웃 클래스를 자바에서 선언하여 만들어서 추가하는 식으로 UI를 구성할 수 있습니다.

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.Button;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        LinearLayout layout = new LinearLayout(this);

        Button button = new Button(this);
        button.setText("버튼1");

        layout.addView(button);

        setContentView(layout);
    }
}

 

*레이아웃XML로 화면구성

아래처럼 XML코드에서 레이아웃, 버튼 등을 선언해서 UI를 구성할 수 있습니다.

<?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"
    tools:context=".MainActivity3">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="버튼입니다!"
        />
</LinearLayout>

 

레이아웃XML 만들때 Code 모드 vs 디자인모드

레이아웃 XML파일을 만들면 기본적으로 디자인모드가 선택되어 있습니다.

코드모드로 변경하면 XML코드로 작업할 수 있습니다.

둘중 어떤 모드로 할지도 개발자 선택사항이지만 보통 코드모드로 많이 하는 편입니다.

 

2023.01.15 - [프로그래밍/안드로이드] - #8.안드로이드 각 액티비티 독립적으로 테스트하는 방법

 

#8.안드로이드 각 액티비티 독립적으로 테스트하는 방법

안드로이드 각 액티비티 독립적으로 테스트하는 방법 테스트시 각 액티비티 독립적으로 테스트 하기 1.생성할 패키지 우클릭->NEW->Activity->Empty Activity 선택 2.액티비티 생성시 'Launcher Activity'체크

hyunssssss.tistory.com

 

반응형

댓글