zoukankan      html  css  js  c++  java
  • 用户界面总结 1

    理解UI事件

     

     

     

     Menu

    /*
    OptionMenu 
        1. 如何触发Menu的显示? 
            点击menu键 
        2. 如何向Menu中添加MenuItem? 
            重写onCreateOptionMenu()
            menu.add()或者加载菜单文件
        3. 选择某个MenuItem时如何响应? 
            重写onOptionsItemSelected(), 根据itemId做响应
    ContextMenu
        1. 如何触发Menu的显示? 
            长按某个视图 
            view.setOnCreateContextMenuListener(this)
        2. 如何向Menu中添加MenuItem? 
            重写onCreateContextMenu()
            menu.add()
        3. 选择某个MenuItem时如何响应? 
            重写onContextItemSelected(), 根据itemId做响应
     */
    public class MenuActivity extends Activity {
    
        private Button btn_test2_show_cm;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_menu);
            
            btn_test2_show_cm = (Button) findViewById(R.id.btn_test2_show_cm);
            //设置创建上下文菜单的监听
            btn_test2_show_cm.setOnCreateContextMenuListener(this);
        }
        
        
        @Override
        public void onCreateContextMenu(ContextMenu menu, View v,
                ContextMenuInfo menuInfo) {
            super.onCreateContextMenu(menu, v, menuInfo);
            //添加菜单项
            menu.add(0, 1, 0, "添加");
            menu.add(0, 4, 0, "删除");
        }
        
        @Override
        public boolean onContextItemSelected(MenuItem item) {
            
            switch (item.getItemId()) {
            case 1:
                Toast.makeText(this, "添加", 0).show();
                break;
            case 4:
                Toast.makeText(this, "删除", 0).show();
                break;
            default:
                break;
            }
            
            return super.onContextItemSelected(item);
        }
        
    
        // 用来显示optionmenu的方法: 向menu中添加Item
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
    
            // 纯编码方式
            menu.add(0, 2, 0, "添加");
            menu.add(0, 3, 0, "删除");
            return super.onCreateOptionsMenu(menu);
        }
        
        /*@Override
        public boolean onCreateOptionsMenu(Menu menu) {
    
            // 菜单文件方式
                //1. 得到菜单加载器对象
            MenuInflater menuInflater = getMenuInflater();
                //2. 加载菜单文件
            menuInflater.inflate(R.menu.option_menu, menu);
            return super.onCreateOptionsMenu(menu);
        }*/
        
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            
            switch (item.getItemId()) {
            //case R.id.add:
            case 2:
                Toast.makeText(this, "添加", 0).show();
                break;
            //case R.id.delete:
            case 3:
                Toast.makeText(this, "删除", 0).show();
                break;
            default:
                break;
            }
            
            return super.onOptionsItemSelected(item);
        }
    }
    Menu

     

     对话框

    API结构

     一般的Dialog

     

     

  • 相关阅读:
    ajax请求地址后加随机数防止浏览器缓存
    全新跨平台版本.NET敏捷开发框架-RDIFramework.NET5.0震撼发布
    一网打尽,一文讲通虚拟机VirtualBox及Linux使用
    解放双手,markdown文章神器,Typora+PicGo+七牛云图床实现自动上传图片
    VS2019 创建C++动态库dll----C#调用
    AOP面向切面的编程使用Interceptor内置的容器进行属性注入
    使用IOC内置的容器进行属性注入
    对于2021年整体预判
    亲子教育的六个阶段
    Win10 损坏硬盘命令
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/12852880.html
Copyright © 2011-2022 走看看