Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

안드로이드 툴바 아이콘에 클릭 이벤트 구현하는 방법

이 튜토리얼에서는 안드로이드 앱의 툴바(Toolbar) 아이콘에 클릭 이벤트를 구현하는 방법을 단계별로 알아보겠습니다. 액션 바의 홈 아이콘(업 버튼)을 클릭했을 때 특정 동작을 수행하도록 처리하는 과정을 예제 코드와 함께 설명합니다.

1단계 — 새 프로젝트 생성

Android Studio를 실행한 후 File ⇒ New Project 메뉴로 이동하여 새 프로젝트를 생성합니다. 프로젝트 생성에 필요한 정보를 모두 입력한 뒤 진행하세요.

2단계 — 레이아웃 파일(activity_main.xml) 작성

res/layout/activity_main.xml 파일에 아래 코드를 추가합니다.

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "https://schemas.android.com/apk/res/android"
   xmlns:app = "https://schemas.android.com/apk/res-auto"
   xmlns:tools = "https://schemas.android.com/tools"
   android:layout_width = "match_parent"
   android:gravity = "center"
   android:layout_height = "match_parent"
   tools:context = ".MainActivity">
   <TextView
      android:id = "@+id/text"
      android:textSize = "30sp"
      android:layout_width = "match_parent"
      android:layout_height = "match_parent" />
</LinearLayout>

위 코드에서는 화면 중앙에 배치된 TextView를 사용해 액션 바 아이콘의 상태를 표시하도록 구성했습니다. 텍스트 크기는 30sp로 지정하여 결과를 쉽게 확인할 수 있습니다.

3단계 — MainActivity.java 코드 작성

src/MainActivity.java 파일에 아래 코드를 추가합니다.

package com.example.myapplication;
import android.annotation.SuppressLint;
import android.app.ActivityManager;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
   TextView textView;
   @SuppressLint("RestrictedApi")
   @RequiresApi(api = Build.VERSION_CODES.N)
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      textView = findViewById(R.id.text);
      getSupportActionBar().setTitle("Home");
      getSupportActionBar().setSubtitle("sairam");
      getSupportActionBar().setDisplayHomeAsUpEnabled(true);
      getSupportActionBar().setHomeAsUpIndicator(R.drawable.logo);
      textView.setText("icon enabled ");
   }
   @Override
   public boolean onOptionsItemSelected(MenuItem menuItem) {
      if (menuItem.getItemId() == android.R.id.home) {
         finish();
      }
      return super.onOptionsItemSelected(menuItem);
   }
}

핵심 코드 설명

onCreate() 메서드에서는 getSupportActionBar().setHomeAsUpIndicator()를 호출하여 액션 바 좌측에 표시될 커스텀 아이콘(logo 이미지)을 설정하고, setDisplayHomeAsUpEnabled(true)로 업 버튼을 활성화합니다.

클릭 이벤트 처리의 핵심은 onOptionsItemSelected() 메서드입니다. 클릭된 메뉴 항목의 ID가 android.R.id.home(홈/업 버튼)과 일치하면 finish()를 호출하여 현재 액티비티를 종료합니다. 이처럼 메서드를 오버라이드하면 툴바 아이콘 클릭 시 원하는 동작을 자유롭게 구현할 수 있습니다.

앱 실행 및 결과 확인

이제 애플리케이션을 실행해 보겠습니다. 실제 안드로이드 기기가 컴퓨터에 연결되어 있다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤 툴바의 Run 아이콘을 클릭하고, 목록에서 본인의 모바일 기기를 선택하세요. 앱이 실행되면 기기 화면에 아래와 같은 기본 화면이 표시됩니다.

안드로이드 툴바 아이콘에 클릭 이벤트 구현하는 방법

화면 상단의 툴바에서 커스텀 아이콘을 탭하면 onOptionsItemSelected()가 호출되어 액티비티가 종료되는 것을 확인할 수 있습니다. 이 방식을 응용하면 뒤로 가기 외에도 메뉴 열기, 화면 전환 등 다양한 동작을 손쉽게 추가할 수 있습니다.