安卓activity菜單創建和使用第一節課

 

//設置上面菜單欄
 
第一步先建一個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();
                 }
            }
        );
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章