我目前正在使用据称是API 14的Switch Widget。我的项目设置为15的最小API。我正在尝试更改Switch小部件轨道OnCheckedChanged
的背景
但是我得到一个错误,setTrackResource需要16的最小API ..我想起初我只需要更新我的支持库,但它在v13上
我不想@supress这个警告?有办法吗?
cameraTypeSwitch = (Switch) findViewById(R.id.cameraTypeSwitch);
cameraTypeSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if (buttonView.isChecked()){
cameraTypeSwitch.setTrackResource(R.drawable.camera_track_camera);
}
else{
cameraTypeSwitch.setTrackResource(R.drawable.camera_track_video);
}
}
});
我试图将轨道drawable设置为具有on checked状态,如下所示:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@null" android:state_enabled="false"/>
<item android:drawable="@drawable/camera_track_camera" android:state_checked="true"/>
<item android:drawable="@drawable/camera_track_video" android:state_checked="false"/>
</selector>
但这似乎不起作用..无论如何动态更改API 15中的曲目背景
答案 0 :(得分:2)
来自Android official documentation
public void setTrackResource(int resId)在API级别16中添加
因此,您需要API 16+才能使用setTrackResource(int)
方法(即minSDK应为16或更高)。没有解决方法,因为此方法在API 15或更低版本中不存在,除非您自己编写。