亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 解決case expressions must be constant expressions [打印本頁(yè)]

作者: wyk86485481    時(shí)間: 2016-09-09 15:24
標(biāo)題: 解決case expressions must be constant expressions
Android Library工程寫代碼需要注意switch ... case語(yǔ)句對(duì)資源id的引用,會(huì)引發(fā)編譯錯(cuò)誤:`case expressions must be constant expressions。`

通常android工程生成的資源R.java,資源id聲明如下:

        public static final int main=0x7f030004;

而對(duì)于library工程,資源id聲明如下:

        public static int main=0x7f030004;

缺少了final,因此使用R.id 的switch ... case語(yǔ)句會(huì)編譯失敗。

### 解決方法如下:

將switch ... case替換成if ... else語(yǔ)句。

#### for Eclipse

Eclipse中,光標(biāo)定位在switch上,按Ctrl + 1(Command + 1 for Mac osx),選擇Convert 'switch' to 'if-else'.

#### for Android studio

快捷鍵,Alt + Enter,選擇 Replace 'switch' with 'if'.

如轉(zhuǎn)換前代碼:

~~~.java
        @Override
        public void onClick(View v) {
                switch (v.getId()) {
                case R.id.btn_left:
                        hideSoftKeyboard();
                        finish();
                        break;

                default:
                        break;
                }
        }
~~~

轉(zhuǎn)換后代碼:

~~~.java
        @Override
        public void onClick(View v) {
                int id = v.getId();
                if (id == R.id.btn_left) {
                        hideSoftKeyboard();
                        finish();
                } else {
                }
        }
~~~


作者: l495051275    時(shí)間: 2017-02-18 19:14





歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2