有可能有一个用于ics版本的switch小部件,但是有一个用于pre-ics的复选框吗?如果是这样,怎么办?
我不担心其他部件,只担心开关。
我的解决方案
看到switch和checkbox都继承自compoundbutton,我就这么做了

((CompoundButton)findViewById(R.id.swTax)).setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            calculateValues();
        }
    });

最佳答案

通过将ICS版本放置在单独的布局文件夹(例如layout-v14)中,为ICS版本创建单独的布局XML文件。为了防止大量重复的xml,使用一个主布局文件并包含小部件。生成的文件结构如下所示:
布局
MyLayOut.xml
XML文件
Lay-V14
XML文件
mylayout.xml中,您将得到如下内容:

<include layout="@layout/widget" />

在这个布局的Activity中,在设置与CheckBoxSwitch小部件的任何交互之前,还必须检查版本:
int version = android.os.Build.VERSION.SDK_INT;
if (version >= 14) {
    // get your Switch view and set up listeners etc
}
else {
    // get your CheckBox view and set up listeners etc
}

关于android - Android ICS小部件(开关)和旧版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10011394/

10-12 05:00