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

Provide vibration feedback based on whether the checkbox are checked or not

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

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

下面是我的复选框首选项块,应该很常见:

以及加载偏好 xml 的偏好 class:

请任何人告诉我如何实现这一目标。谢谢!

您需要如下使用 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" />

希望对您有所帮助!