================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 |