================Res/menu/popupmenutestmenu.xml=======

<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:id="@+id/popup_red"
    android:title="Back-Red"/>
  <item android:id="@+id/popup_green"
    android:title="Back-green"/>
  <item android:id="@+id/popup_blue"
    android:title="Back-blue"/>
  <item android:id="@+id/popup_text"
    android:title="TextColor">
    <menu>
      <item android:id="@+id/popup_black"
         android:title="BACK-black"/>
      <item android:id="@+id/popup_white"
         android:title="BACK-white"/>
      <item android:id="@+id/popup_gray"
         android:title="BACK-gray"/>
    </menu>
  </item>
</menu>

--------------------Activity_main.xml---------------

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat 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:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:gravity="center"
  tools:context=".MainActivity">

  <Button
    android:id="@+id/btn"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Button"
    android:onClick="mOnClick"
  />
  <EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/editext"
    android:text="EditText"
  />
  <ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/Image1"
    android:src="@drawable/woman3"
  />
</androidx.appcompat.widget.LinearLayoutCompat>

---------------Main_Activity.java-----------------

package com.jproject.learn1;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.AppCompatImageView;

import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.util.AttributeSet;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.PopupMenu;
import android.widget.TextView;
import android.widget.Toast;

import java.text.AttributedCharacterIterator;

public class MainActivity extends AppCompatActivity {
Button mBtn;
EditText mEdit;
ImageView mImage;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mBtn = (Button)findViewById(R.id.btn);
registerForContextMenu(mBtn);

mEdit = (EditText)findViewById(R.id.editext);
registerForContextMenu(mEdit);

mImage = (ImageView) findViewById(R.id.Image1);
registerForContextMenu(mImage);
}

public void mOnClick(View v){
PopupMenu popup = new PopupMenu(this, v);
MenuInflater inflater = popup.getMenuInflater();
Menu menu = popup.getMenu();
inflater.inflate(R.menu.popupmenutestmenu, menu);
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()){
case R.id.popup_red:
mBtn.setBackgroundColor(Color.RED);
break;
case R.id.popup_green:
mBtn.setBackgroundColor(Color.GREEN);
break;
case R.id.popup_blue:
mBtn.setBackgroundColor(Color.BLUE);
break;
case R.id.popup_black:
mBtn.setBackgroundColor(Color.BLACK);
break;
case R.id.popup_white:
mBtn.setBackgroundColor(Color.WHITE);
break;
case R.id.popup_gray:
mBtn.setBackgroundColor(Color.GRAY);
break;
}
return false;
}
});
popup.show();
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if (v == mBtn) {
menu.setHeaderTitle("Button Menu");
menu.add(0,1,0,"red");
menu.add(0,2,0,"green");
menu.add(0,3,0,"blue");
}

if (v==mEdit){
menu.add(0,4,0,"번역");
menu.add(0,5,0,"작곡");
}
if (v==mImage){
menu.setHeaderTitle("Image Menu");
menu.add(0,100,0,"회전");
menu.add(0,200,0,"이동");
}
}

@Override
public boolean onContextItemSelected(MenuItem item) {
super.onContextItemSelected(item);
switch (item.getItemId())
{
case 1:
mBtn.setTextColor(Color.RED);
return true;
case 2:
mBtn.setTextColor(Color.GREEN);
return true;
case 3:
mBtn.setTextColor(Color.BLUE);
return true;
case 4:
Toast.makeText(this,"번역",Toast.LENGTH_SHORT).show();
return true;
case 5:
Toast.makeText(this,"작곡",Toast.LENGTH_SHORT).show();
return true;
case 100:
Toast.makeText(this,"회전",Toast.LENGTH_SHORT).show();
return true;
case 200:
Toast.makeText(this,"이동",Toast.LENGTH_SHORT).show();
return true;
}
return true;
}
}

 

'IT 통신 수학 과학 > 자바 안드로이드' 카테고리의 다른 글

안드로이드 파일 입출력 및 삭제  (0) 2020.12.16
AdapterView 다중선택  (0) 2020.11.02
AdapterView2  (0) 2020.11.01
ArrayAdapter  (0) 2020.10.28
컨텍스트 메뉴  (0) 2020.09.06
menu기능//item.setIcon(R.drawable.ic_launcher)오류  (0) 2020.09.02
타이머 메시지 핸들러  (0) 2020.08.29
버튼 리스너 구현  (0) 2020.08.23

+ Recent posts