根据是否选中复选框提供振动反馈

时间:2015-03-23 01:33:37

标签: android checkbox checked vibrate

我正在尝试为我的应用程序开发设置列表,基本上我想在我的设置中设置一个复选框,允许用户决定是否允许在应用程序中振动。

当选中复选框时,在我的应用程序中实现振动效果非常简单,但当用户选中设置中的复选框时,我找不到给用户提供即时振动反馈的方法。具体来说,当用户选中复选框时,我想让设备振动,当用户取消选中时,我当然不会振动。

下面是我的复选框首选项块,它应该是非常常见的: enter image description here

加载首选项xml的首选项类:

enter image description here

请有人告诉我如何实现这一目标。 THX!

1 个答案:

答案 0 :(得分:1)

您需要使用如下的setOnPreferenceChangeListener(),

 public class UserSettingActivity extends PreferenceActivity
{

    Vibrator v;

    @SuppressWarnings("deprecation")
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        addPreferencesFromResource(R.xml.settings);
        v = (Vibrator) UserSettingActivity.this.getSystemService(Context.VIBRATOR_SERVICE);

        final CheckBoxPreference checkboxPref = (CheckBoxPreference) getPreferenceManager().findPreference("keypress_vibration");//key name in preference xml

        checkboxPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
        {
            public boolean onPreferenceChange(Preference preference, Object newValue)
            {
                if (newValue.toString().equals("true"))
                {
                    v.vibrate(500);
                }
                return true;
            }
        });
    }
}

并且不要忘记在清单中给予许可,

<uses-permission android:name="android.permission.VIBRATE" />

希望这有帮助!