안드로이드 스튜디오 메모 앱 만들기(10)

윤재환·2024년 11월 26일

메모 추가하기 아이콘

앱에 들어가자마자 메모 추가하는 기능이 바로 눈앞에 보이면 메모가 눈에 바로 들어오지 않는 점이 마음에 걸렸습니다.

그래서 따로 메모 추가하는 "+" 아이콘을 추가하여 메모를 추가하는 아이콘을 만들 생각입니다.

activity_main.xml 수정

우선 기존에 메모를 추가하는 xml을 주석 처리로 바꾸고 위 아이콘을 만드는 작업을 하겠습니다.

https://www.flaticon.com/kr/

해당 사이트에서 작성에 관련된 아이콘을 다운받아서 버튼에 적용해 보도록 하겠습니다.

이미지의 경우 res 아래 drawable 안에 넣으셔야 합니다.

아래는 이미지 버튼 추가 코드입니다.

 <ImageButton
        android:id="@+id/buttonAddMemo"
        android:layout_width="48dp"
        android:layout_height="49dp"
        android:src="@drawable/write_icon"
        android:background="@null"
        android:contentDescription="메모 추가 버튼"
        android:scaleType="fitCenter"
        android:layout_gravity="end"
        android:padding="8dp" />

아이디는 이전과 그래도 add


WriteMemoActivity.kt

class WriteMemoActivity : AppCompatActivity() {
    override  fun onCreate(savedInstanceState : Bundle?){
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_write_memo)
    }
}

위 코드에 대해 조금 설명하겠습니다.

  • AppCompatActivity :
    • 해당 코드는 화면(Activity)을 만들 때 사용하는 기본 클래스 입니다.
    • 이 클래스는 화면을 열고 닫는 기능, 버튼 클릭 처리 등 화면에 필요한 기본 기능들을 사용 할 수 있습니다.
  • savedInstanceState
    • 해당 코드는 화면의 상태를 저장하거나 복원할 때 사용되는 데이터입니다.
    • 화면을 회전하거나, 앱을 일시적으로 닫았다가 다시 열 때 이전에 있던 데이터를 복원할 수 있습니다.

AndroidManifest.xml 등록

새로운 액티비티(화면)를 android에 추가 할시에 꼭 등록 해줘야 합니다.

<activity android:name=".WriteMemoActivity"
    android:label="메모 작성"/>

MainActivity.kt

이제 MainActivity.kt에서 기존에 있던 메모 추가를 잠시 주석처리해주고 메모 작성 버튼 클릭시 이동하는 이벤트를 작성하겠습니다.

 //메모 추가 버튼
        val buttonWriteMemo = findViewById<ImageButton>(R.id.buttonWriteMemo)

        //메모 추가 버튼 클릭 이벤트 설정

        buttonWriteMemo.setOnClickListener {
            //WriteMemoActivity로 이동
            val intent = Intent(this, WriteMemoActivity::class.java)
            startActivity(intent)
        }

activity_write_memo.xml

이제 메모 작성 화면을 작성하겠습니다.


<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <!-- 제목 입력 -->
    <EditText
        android:id="@+id/editTextTitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="제목을 입력하세요"
        android:textSize="18sp" />

    <!-- 내용 입력 -->
    <EditText
        android:id="@+id/editTextContent"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="내용을 입력하세요"
        android:gravity="start|top"
        android:minHeight="200dp"
        android:layout_marginTop="8dp"
        android:textSize="16sp" />

    <!-- 저장 버튼 -->
    <Button
        android:id="@+id/buttonSaveMemo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="저장"
        android:textColor="@android:color/white" />
</LinearLayout>
profile
백엔드 개발에 관심있는 1인

0개의 댓글