Android几种简单的目录创建

来简单介绍一下android中子目录(在xml文件中实现而非submenu)以及上下文菜单(OnContextMenu)、选项菜单(OnOptionsMenu)、以及Popoup啥的。。。

(Demo基于Android Studio完成,复制源码请注意先将string以及color文件夹下内容进行复制)

1.将左侧栏的文件预览切换到project模式,在res文件夹下新建一个menu文件夹,之后建立contextmenu、optionmenudemo、popupmenu三个目录文件;各个文件的代码分别如下:
contextmenu:



    
    
    

optionmenudemo:
此处直接在代码中实现了子菜单,在item标签下再编写menu标签达到子菜单效果:


    

        
            
            
            
            
        

    

    

popupmenu:


    
    
    

附上strings文件中内容:


    AndroidHomeWork
    这是我的第一个文本测试内容
    
        叮叮当,叮叮当,铃儿响叮当\n

        我们滑雪多快乐,我们坐在雪橇上\n

        冲过大风雪,他们坐在雪橇上\n

        奔驰过田野,欢笑又歌唱\n

        铃声响叮当,你的精神多欢畅\n

        今晚滑雪真快乐把滑雪歌儿唱\n

        叮叮当,叮叮当,铃儿响叮当\n

        我们滑雪多快乐,我们坐在雪橇上
    
    设置背景
    退出

    
    希望之春
    宁静之夏
    收获之秋
    晶莹之冬

    
    红色
    绿色
    蓝色

    
    大字号
    中字号
    小字号

values下color文件中内容:


    #3F51B5
    #303F9F
    #FF4081
    #FF0000
    #00FF00
    #0000FF
    #FFFF00

layout文件源码:



    

现在进行MainActivity中代码的编写:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private TextView tv1;

    private LinearLayout layout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //使layout绑定到id为layout_1的LinearLayout
        layout = (LinearLayout) findViewById(R.id.layout_1);
        //使tv1绑定到id为tv1的TextView
        tv1 = (TextView) findViewById(R.id.tv1);
        tv1.setOnClickListener(this);
        //长按事件监听:
        tv1.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                //展示出ContextMenu
                v.showContextMenu();
                return true;
            }
        });
        
        //注册上下文菜单
        registerForContextMenu(tv1);
    }

    /**
     * 用于切换项目背景图片
     * @param menu
     * @return
     */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //创建右上角的隐藏式菜单
        getMenuInflater().inflate(R.menu.optionmenudemo,menu);
        return true;

    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        //onOptionsMenu的响应事件
        switch (item.getItemId()){
            case R.id.spring:
                layout.setBackgroundResource(R.mipmap.bg_spring);
                break;
            case R.id.summer:
                layout.setBackgroundResource(R.mipmap.bg_summer);
                break;
            case R.id.autumn:
                layout.setBackgroundResource(R.mipmap.bg_autumn);
                break;
            case R.id.winter:
                layout.setBackgroundResource(R.mipmap.bg_winter);
                break;
            case R.id.quit:
                finish();
            default:
        }
        return super.onOptionsItemSelected(item);
    }


    /**
     * 用于显示PopMenu
     */
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.tv1:
                showPopMenu(v);
        }
    }

    /**
     * 编写showPopMenu的展示方法,编写了点击popup目录之后的响应事件
     * @param v
     */
    public void showPopMenu(View v){
        PopupMenu menu = new PopupMenu(this,v);
        menu.getMenuInflater().inflate(R.menu.popupmenu,menu.getMenu());
        menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                switch (item.getItemId()){
                    case R.id.green:
                        tv1.setTextColor(getResources().getColor(R.color.green));
                        break;
                    case R.id.red:
                        tv1.setTextColor(getResources().getColor(R.color.red));
                        break;
                    case R.id.blue:
                        tv1.setTextColor(getResources().getColor(R.color.blue));
                }
                return true;
            }
        });
        menu.setOnDismissListener(new PopupMenu.OnDismissListener() {
            @Override
            public void onDismiss(PopupMenu menu) {

            }
        });
        menu.show();
    }
    /**
     * 创建上下文菜单
     */
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        getMenuInflater().inflate(R.menu.contextmenu,menu);
    }

    /**
     * 上下文菜单的响应事件
     */
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case R.id.big:
                tv1.setTextSize(30);
                break;
            case R.id.middle:
                tv1.setTextSize(20);
                break;
            case R.id.small:
                tv1.setTextSize(15);
                break;
            default:
        }
        return true;
    }
}

你可能感兴趣的:(Android几种简单的目录创建)