//設置上面菜單欄
第一步先建一個xml
,第二步創建一個menu文件裏面創建xml格式如下
創建menu文件
頁面這裏基本完成
接下來是代碼
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//這是剛纔創建的xml,這個方法是顯示方法
getMenuInflater().inflate(R.menu.option,menu);
return true;
}
//這個方法是點擊方法
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
item.getItemId();
switch (item.getItemId()){
case R.id.save:
Toast.makeText(this,"保存",Toast.LENGTH_SHORT).show();
break;
case R.id.ext:
finish();
break;
}
return super.onOptionsItemSelected(item);
}
長按按鈕顯示
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_demo01);
//需要在主方法中聲明一下 綁定的按鈕id
registerForContextMenu(findViewById(R.id.button01));
}
//顯示方法
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
getMenuInflater().inflate(R.menu.option,menu);
}
//點擊方法
@Override
public boolean onContextItemSelected(@NonNull MenuItem item) {
switch(item.getItemId()){
case R.id.save:
Toast.makeText(this,"保存",Toast.LENGTH_SHORT).show();
break;
}
return super.onContextItemSelected(item);
}
長按按鈕在上面顯示的方法
創建一個內部類
ActionMode.Callback bd = new ActionMode.Callback() {
//創建啓動上下文操作 是調用
@Override
public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
Log.e("TAG","創建");
getMenuInflater().inflate(R.menu.context,menu);
return true;
}
//創建方法後進行調用的
@Override
public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
Log.e("TAG","準備");
return false;
}
@Override
public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
Log.e("TAG","點擊");
return false;
}
//結束調用
@Override
public void onDestroyActionMode(ActionMode actionMode) {
Log.e("TAG","結束");
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button popupBtn = findViewById(R.id.popup_btn);
popupBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//實例化popupmenu對象(參數2 被view)
PopupMenu menu = new PopupMenu(MainActivity.this,popupBtn);
//加載菜單資源
menu.getMenuInflater().inflate(R.menu.option,menu.getMenu());
//爲phpupMenu設置點擊監聽器
menu.show();
}
}
);
}