Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- spring 동적 쿼리 주의사항
- 운영체제 멀티 프로그래밍
- android 타이머
- 백엔드 포지션 변경
- 운영체제 개념
- 운영체제 멀티 태스킹
- spring dynamic query sql injection
- 운영체제 커널모드
- IT 포지션 변경
- spring exception stackTrace remove
- 운영체제 작동방식
- spring exceptionHandler response cause
- aws ec2 scp 파일 전송
- Android Timer
- spring responseEntity response stackTrace
- spring exception cause remove
- spring paging sort sql injection
- 개발 직무 변경
- IT 직무 변경
- 백엔드 직무 변경
- 개발 포지션 변경
- spring sql injection
- ec2 scp 파일 전송
- spring sql injection 방지
- OS 자원관리
- 운영체제 공룡책
- spring exceptionHandler reposnse stackTrace
- 운영체제 자원관리
- spring responseEntity response cause
- 운영체제 다중모드
Archives
- Today
- Total
오늘도 삽질중
android PopupMenu 사용법 및 스타일 적용 본문
반응형
안드로이드 팝업메뉴 기본사용법 및 스타일 적용방법입니다.
popup_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000">
<Button
android:id="@+id/btn_popup_show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="팝업 메뉴 실행" />
<ImageView
android:id="@+id/image_icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/image_toolbar_more"
android:layout_alignParentRight="true"/>
</RelativeLayout>
popup_menu.java
import android.os.Bundle;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.PopupMenu;
public class PopupMenuActivity extends AppCompatActivity implements View.OnClickListener, PopupMenu.OnMenuItemClickListener {
PopupMenu popupMenu;
Button btnPopupShow;
ImageView imageIcon;
@Override
protected void onCreate( @Nullable Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_popup_menu );
btnPopupShow = findViewById( R.id.btn_popup_show );
imageIcon = findViewById( R.id.image_icon );
btnPopupShow.setOnClickListener( this );
// style 적용안됨
// popupMenu = new PopupMenu( this , imageIcon , Gravity.END, R.attr.actionOverflowMenuStyle, 0 );
popupMenu = new PopupMenu( this, imageIcon, Gravity.END, 0, R.style.MyPopupMenu );
popupMenu.getMenu( ).add( 0, 0, 0, "리스트 첫번째" );
popupMenu.getMenu( ).add( 0, 1, 0, "리스트 두번째" );
popupMenu.getMenu( ).add( 0, 2, 0, "리스트 세번째" );
popupMenu.setOnMenuItemClickListener( this );
}
@Override
public void onClick( View v ) {
if ( v == btnPopupShow ) {
popupMenu.show( );
}
}
@Override
public boolean onMenuItemClick( MenuItem item ) {
switch ( item.getItemId( ) ) {
case 0: //리스트 첫번째 클릭시 호출
break;
case 1: //리스트 두번째 클릭시 호출
break;
case 2: //리스트 세번째 클릭시 호출
break;
}
return false;
}
}
res -> values -> styles.xml 에 추가
원하는 만큼 간격 조절이 가능합니다.
<style name="MyPopupMenu" parent="@style/Widget.AppCompat.PopupMenu.Overflow">
<item name="android:dropDownHorizontalOffset">-8dp</item>
<item name="android:dropDownVerticalOffset">8dp</item>
</style>
실행 결과
반응형
'안드로이드' 카테고리의 다른 글
android CircleImageView background Color 변경하기 (0) | 2020.05.22 |
---|---|
android google-services.json file 교체 후 MismatchSenderId 가 발생 할 때 (0) | 2020.02.27 |
android compareTo (0) | 2020.02.03 |
android intent 이메일 전송하기 (0) | 2019.09.20 |
android SpannableString을 사용해서 text 일부분만 컬러변경하기 (0) | 2019.08.28 |
Comments