본문 바로가기

Android

[10일차] ActionMode

startSupportActionMode() 로 띄우면 된다. 



onCreateActionMode 에서 생성하고 일반적으로 여기

이 안에 Menu inflater 얻어서 그리기





onPrepareActionMode에서 이미 생성되잇는 모드



ActionItemClick에서 사라지게 하려면 finish() 해주면 된다. 



지금은 ActionMode로 띄운다. 



팝업 메뉴


anchor  - 팝업을 띄울 기준이 되는 뷰.


public class ActionModeActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_action_mode);
Button btn = (Button)findViewById(R.id.btn_action_mode);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startSupportActionMode(new ActionMode.Callback() { // 액션모드 콜백 함수호출
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
getMenuInflater().inflate(R.menu.action_mode_edit, menu); //보통은 여기
return true;
}

@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}

@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) { // 클릭되었을때
switch (item.getItemId()) {
case R.id.menu_add :
case R.id.menu_get :
case R.id.menu_delete :
Toast.makeText(ActionModeActivity.this,
"mode menu : " + item.getTitle(), Toast.LENGTH_SHORT).show();
mode.finish();
return true;
}
return false;
}

@Override
public void onDestroyActionMode(ActionMode mode) {

}
});
}
});

btn = (Button)findViewById(R.id.btn_popup);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
PopupMenu popup = new PopupMenu(ActionModeActivity.this, view);// 팝업 선언
popup.inflate(R.menu.action_mode_edit); //인플레이트로 뷰 불러오기
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) { // 클릭 리스너
switch (item.getItemId()) {
case R.id.menu_add :
case R.id.menu_get :
case R.id.menu_delete :
Toast.makeText(ActionModeActivity.this, "popup : " + item.getTitle(), Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
});
popup.show(); // 팝업 쇼
}
});
}
}

오픈소스


 - AcitonItemBadge

 - ArcMenu

 - CircularFloatingActionMenu

 - ResideMenu

 - ContextMenuDialogFragment

 - TabBarMenu

 - 이와 같이 오픈소스 메뉴를 기본적으로 사용할 수 있다. 


'Android' 카테고리의 다른 글

[10일차] UpNavigation  (0) 2016.07.26
[10일차]ActionBar  (0) 2016.07.26
[10일차] 옵션 메뉴  (0) 2016.07.26
[9일차]프래그먼트로 뷰 페이져  (0) 2016.07.25
[9일차] 뷰페이져  (0) 2016.07.25