zoukankan      html  css  js  c++  java
  • 枚举

    枚举用法:
    1.okhttp

    package okhttp3;
    
    import java.io.IOException;
    
    public enum Protocol
    {
      HTTP_1_0, HTTP_1_1, SPDY_3, HTTP_2;
    
      private final String protocol;
    
      public static Protocol get(String protocol)
        throws IOException
      {
        if (protocol.equals(HTTP_1_0.protocol)) return HTTP_1_0;
        if (protocol.equals(HTTP_1_1.protocol)) return HTTP_1_1;
        if (protocol.equals(HTTP_2.protocol)) return HTTP_2;
        if (protocol.equals(SPDY_3.protocol)) return SPDY_3;
        throw new IOException("Unexpected protocol: " + protocol);
      }
    
      public String toString()
      {
        return this.protocol;
      }
    }

    2.oschina

    package net.oschina.app.ui;
    
    import net.oschina.app.R;
    import net.oschina.app.fragment.ExploreFragment;
    import net.oschina.app.fragment.MyInformationFragment;
    import net.oschina.app.viewpagerfragment.NewsViewPagerFragment;
    import net.oschina.app.viewpagerfragment.TweetsViewPagerFragment;
    
    public enum MainTab {
    
        NEWS(0, R.string.main_tab_name_news, R.drawable.tab_icon_new,
                NewsViewPagerFragment.class),
    
        TWEET(1, R.string.main_tab_name_tweet, R.drawable.tab_icon_tweet,
                TweetsViewPagerFragment.class),
    
        QUICK(2, R.string.main_tab_name_quick, R.drawable.tab_icon_new,
                null),
    
        EXPLORE(3, R.string.main_tab_name_explore, R.drawable.tab_icon_explore,
                ExploreFragment.class),
    
        ME(4, R.string.main_tab_name_my, R.drawable.tab_icon_me,
                MyInformationFragment.class);
    
        private int idx;
        private int resName;
        private int resIcon;
        private Class<?> clz;
    
        private MainTab(int idx, int resName, int resIcon, Class<?> clz) {
            this.idx = idx;
            this.resName = resName;
            this.resIcon = resIcon;
            this.clz = clz;
        }
    
        public int getIdx() {
            return idx;
        }
    
        public void setIdx(int idx) {
            this.idx = idx;
        }
    
        public int getResName() {
            return resName;
        }
    
        public void setResName(int resName) {
            this.resName = resName;
        }
    
        public int getResIcon() {
            return resIcon;
        }
    
        public void setResIcon(int resIcon) {
            this.resIcon = resIcon;
        }
    
        public Class<?> getClz() {
            return clz;
        }
    
        public void setClz(Class<?> clz) {
            this.clz = clz;
        }
    }
    
    private void initTabs() {
            MainTab[] tabs = MainTab.values();
            final int size = tabs.length;
            for (int i = 0; i < size; i++) {
                MainTab mainTab = tabs[i];
                TabSpec tab = mTabHost.newTabSpec(getString(mainTab.getResName()));
                View indicator = LayoutInflater.from(getApplicationContext())
                        .inflate(R.layout.tab_indicator, null);
                TextView title = (TextView) indicator.findViewById(R.id.tab_title);
                Drawable drawable = this.getResources().getDrawable(
                        mainTab.getResIcon());
                title.setCompoundDrawablesWithIntrinsicBounds(null, drawable, null,
                        null);
                if (i == 2) {
                    indicator.setVisibility(View.INVISIBLE);
                    mTabHost.setNoTabChangedTag(getString(mainTab.getResName()));
                }
                title.setText(getString(mainTab.getResName()));
                tab.setIndicator(indicator);
                tab.setContent(new TabContentFactory() {
    
                    @Override
                    public View createTabContent(String tag) {
                        return new View(MainActivity.this);
                    }
                });
                mTabHost.addTab(tab, mainTab.getClz(), null);
    
                if (mainTab.equals(MainTab.ME)) {
                    View cn = indicator.findViewById(R.id.tab_mes);
                    mBvNotice = new BadgeView(MainActivity.this, cn);
                    mBvNotice.setBadgePosition(BadgeView.POSITION_TOP_RIGHT);
                    mBvNotice.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10);
                    mBvNotice.setBackgroundResource(R.drawable.notification_bg);
                    mBvNotice.setGravity(Gravity.CENTER);
                }
                mTabHost.getTabWidget().getChildAt(i).setOnTouchListener(this);
            }
        }

    枚举很像c里面的结构体,小巧。可以保存信息。保存tabhost的模板信息。
    枚举可以替代以前在接口里面定义的常量字符串。不用public static final了。
    枚举可以switch。

  • 相关阅读:
    MySQL初始化以及更改密码
    对付小白的ARP的简单介绍
    PXE批量安装CentOS7操作系统
    20不惑
    辩论会
    学习
    JAVA语言的特点
    程序流程图对新手来说很重要。
    浅谈博客、微博与轻博客的区别与联系
    要学好JAVA要注意些什么?
  • 原文地址:https://www.cnblogs.com/caoxinyu/p/6647873.html
Copyright © 2011-2022 走看看