2014-07-24 15 views
0

我有以下代码:如何永久选中的复选框的android

<CheckBoxPreference 
     android:defaultValue="true" 
     android:key="@key/pref_airship" 
     android:persistent="true" 
     android:title="@string/pref_airship" /> 

根据这个代码,当应用程序启动第一次复选框被选中。但我希望该复选框被永久检查,并且用户不能取消选中此复选框(例如,它会更改它的颜色并始终保持选中状态)。任何建议如何做到这一点?

回答

2

解决方法很简单:禁用Java代码中的点击(不是XML)。做你的onCreate()以下的地方,在onStart()的onResume(),或在任何你设置你的喜好布局:

CheckBoxPreference airshipPref = (CheckBoxPreference) findPreference("pref_airship"); 
airshipPref.setEnabled(false); 

这样一来,就不会处理点击,它不应该听取用户输入,从而保持始终检查。

0

或者,你可以继承CheckBoxPreference创建自定义的偏好:

public class DisabledCheckBoxPreference extends CheckBoxPreference{ 

     public DisabledCheckBoxPreference(Context context, AttributeSet attrs, 
       int defStyle) { 
      super(context, attrs, defStyle); 
      // TODO Auto-generated constructor stub 
     } 

     public DisabledCheckBoxPreference(Context context, AttributeSet attrs) { 
      super(context, attrs); 
      // TODO Auto-generated constructor stub 
     } 

     public DisabledCheckBoxPreference(Context context) { 
      super(context); 
      // TODO Auto-generated constructor stub 
     } 

     @Override 
     protected void onBindView(View view) { 
      view.setEnabled(false); 
      super.onBindView(view); 
     } 

    } 

用法:

<com.your.package.name.DisabledCheckBoxPreference 
     android:defaultValue="true" 
     android:key="@key/pref_airship" 
     android:persistent="true" 
     android:title="@string/pref_airship" />