앱에 들어가자마자 메모 추가하는 기능이 바로 눈앞에 보이면 메모가 눈에 바로 들어오지 않는 점이 마음에 걸렸습니다.
그래서 따로 메모 추가하는 "+" 아이콘을 추가하여 메모를 추가하는 아이콘을 만들 생각입니다.
우선 기존에 메모를 추가하는 xml을 주석 처리로 바꾸고 위 아이콘을 만드는 작업을 하겠습니다.
해당 사이트에서 작성에 관련된 아이콘을 다운받아서 버튼에 적용해 보도록 하겠습니다.
이미지의 경우 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
class WriteMemoActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState : Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_write_memo)
}
}
위 코드에 대해 조금 설명하겠습니다.
AppCompatActivity :savedInstanceState새로운 액티비티(화면)를 android에 추가 할시에 꼭 등록 해줘야 합니다.
<activity android:name=".WriteMemoActivity"
android:label="메모 작성"/>
이제 MainActivity.kt에서 기존에 있던 메모 추가를 잠시 주석처리해주고 메모 작성 버튼 클릭시 이동하는 이벤트를 작성하겠습니다.
//메모 추가 버튼
val buttonWriteMemo = findViewById<ImageButton>(R.id.buttonWriteMemo)
//메모 추가 버튼 클릭 이벤트 설정
buttonWriteMemo.setOnClickListener {
//WriteMemoActivity로 이동
val intent = Intent(this, WriteMemoActivity::class.java)
startActivity(intent)
}
이제 메모 작성 화면을 작성하겠습니다.
<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>