ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [안드로이드 스튜디오] 메뉴 등록하기
    프로그래밍/XML | JAVA 2024. 4. 9. 10:07

    activtiy_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout 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=".MainActivity" >
    
        <LinearLayout
            android:id="@+id/layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            tools:layout_editor_absoluteX="1dp"
            tools:layout_editor_absoluteY="1dp">
    
            <TextView
                android:id="@+id/textView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="메뉴선택예제"
                android:gravity="center"
                tools:layout_editor_absoluteX="166dp"
                tools:layout_editor_absoluteY="355dp" />
        </LinearLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>

    1. res의 menu 디렉터리 생성
    2. menu 디렉터리 안에 리소스 파일 생성해서 mymenu.xml 생성

    mymenu.xml

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:android="http://schemas.android.com/apk/res/android">
        <item
            android:id="@+id/blue"
            android:icon="@android:drawable/btn_star_big_on"
            android:title="파랑색"
            app:showAsAction="never" />
        <item
            android:id="@+id/green"
            android:icon="@android:drawable/ic_btn_speak_now"
            android:title="초록색"
            app:showAsAction="never" />
        <item
            android:id="@+id/red"
            android:icon="@android:drawable/checkbox_on_background"
            android:title="빨강색"
            app:showAsAction="never" />
    </menu>

    MainActivity.java

    package com.example.a07_14;
    
    import android.graphics.Color;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    
    import androidx.annotation.NonNull;
    import androidx.appcompat.app.AppCompatActivity;
    
    public class MainActivity extends AppCompatActivity {
        View view1;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            view1 = findViewById(R.id.layout);
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.mymenu, menu);
            return super.onCreateOptionsMenu(menu);
        }
    
        @Override
        public boolean onOptionsItemSelected(@NonNull MenuItem item) {
            int id = item.getItemId();
            if (id==R.id.blue) {
                view1.setBackgroundColor(Color.BLUE);
                return true;
            } else if (id==R.id.green) {
                view1.setBackgroundColor(Color.GREEN);
                return true;
            } else if (id==R.id.red) {
                view1.setBackgroundColor(Color.RED);
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    }

    themes 두 파일 안에 DayNight뒤에 글자를 지워줍니다.



    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:android="http://schemas.android.com/apk/res/android">
        <item
            android:id="@+id/blue"
            android:icon="@android:drawable/btn_star_big_on"
            android:title="파랑색"
            app:showAsAction="ifRoom" />
        <item
            android:id="@+id/green"
            android:icon="@android:drawable/ic_btn_speak_now"
            android:title="초록색"
            app:showAsAction="ifRoom" />
        <item
            android:id="@+id/red"
            android:icon="@android:drawable/checkbox_on_background"
            android:title="빨강색"
            app:showAsAction="ifRoom" />
    </menu>
    •  app:showAsAction="ifRoom"으로 바꾸면 아이콘이 뜬다.

Designed by Tistory.