日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網(wǎng)站首頁 編程語言 正文

Android入門之SubMenu的實現(xiàn)詳解_Android

作者:TGITCIC ? 更新時間: 2022-12-23 編程語言

簡介

我們延用在上一篇Menu篇里的例子,把這個ContextMenu里套一層子菜單。

其實,它的原理很簡單。

就是在ContextMenu的:public void onCreateContextMenu方法里,用inflator.inflate(R.menu.sub_menu, menu);加載一個外部的sub_menu。

項目結(jié)構(gòu)

很簡單,一點不難。來看代碼。

前端代碼

sub_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/submenu" android:title="子菜單使用演示~">
        <menu>
            <group android:checkableBehavior = "none">
                <item android:id="@+id/one" android:title = "子菜單一"/>
                <item android:id="@+id/two" android:title = "子菜單二"/>
                <item android:id="@+id/three" android:title = "子菜單三"/>
            </group>
        </menu>
    </item>
</menu>

后端代碼

MainActivity.java

package org.mk.android.demosubmenu;
 
import androidx.appcompat.app.AppCompatActivity;
 
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends AppCompatActivity {
    private Button btnShowMenu;
    private TextView viewContext;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewContext=(TextView)findViewById(R.id.viewContext);
        registerForContextMenu(viewContext);
    }
    @Override
    //重寫上下文菜單的創(chuàng)建方法
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenu.ContextMenuInfo menuInfo) {
 
        //子菜單部分:
        MenuInflater inflator = new MenuInflater(this);
        inflator.inflate(R.menu.sub_menu, menu);
        super.onCreateContextMenu(menu, v, menuInfo);
 
 
    }
 
    //上下文菜單被點擊是觸發(fā)該方法
    @Override
    public boolean onContextItemSelected(MenuItem item) {
 
 
        switch (item.getItemId()) {
            case R.id.one:
                Toast.makeText(MainActivity.this,"你點擊了子菜單一",Toast.LENGTH_SHORT).show();
                break;
            case R.id.two:
                item.setCheckable(true);
                Toast.makeText(MainActivity.this,"你點擊了子菜單二",Toast.LENGTH_SHORT).show();
                break;
            case R.id.three:
                Toast.makeText(MainActivity.this,"你點擊了子菜單三",Toast.LENGTH_SHORT).show();
                item.setCheckable(true);
                break;
        }
        return true;
 
    }
}

運行效果

我們以Toast來顯示不同的子菜單選擇后的效果即可。

原文鏈接:https://blog.csdn.net/lifetragedy/article/details/128028872

欄目分類
最近更新