在API 15中切换支持

时间:2014-05-06 15:01:15

标签: android android-support-library android-switch

我目前正在使用据称是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中的曲目背景

1 个答案:

答案 0 :(得分:2)

来自Android official documentation

  

public void setTrackResource(int resId)在API级别16中添加

因此,您需要API 16+才能使用setTrackResource(int)方法(即minSDK应为16或更高)。没有解决方法,因为此方法在API 15或更低版本中不存在,除非您自己编写。