Build.VERSION.SDK_INT不起作用

时间:2016-12-23 20:08:23

标签: java android android-layout

对于高于版本21的SDK,我使用特定的布局 对于较低版本,我有一个额外的对象用于涟漪效果,我通过此区分我的代码中的布局。

if (Build.VERSION.SDK_INT < 21) {
            RippleView rippleView1 = (RippleView) findViewById(R.id.ripple1);
...
}

但是当我在Android M上编译时,我收到了这个错误:

Error:(45, 68) error: cannot find symbol variable ripple1.

如果我在layout-v21中添加此对象,则不再出现此错误,并且仅在此情况下使用此对象。
我的问题是:当我的版本高于21时,Android如何输入此声明?

1 个答案:

答案 0 :(得分:1)

如果您创建新文件res/values/ids.xml

<resources>
    <item name="ripple1" type="id"/>
</resources>

在布局android:id="@id/ripple1"中(删除加号)。

在Java代码中,保留if语句。应该编译好吗。