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>
- res의 menu 디렉터리 생성
- 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);
}
}
<?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"으로 바꾸면 아이콘이 뜬다.