有可能有一个用于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
中,在设置与CheckBox
或Switch
小部件的任何交互之前,还必须检查版本: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/