我正在尝试为我的应用程序开发设置列表,基本上我想在我的设置中设置一个复选框,允许用户决定是否允许在应用程序中振动。
当选中复选框时,在我的应用程序中实现振动效果非常简单,但当用户选中设置中的复选框时,我找不到给用户提供即时振动反馈的方法。具体来说,当用户选中复选框时,我想让设备振动,当用户取消选中时,我当然不会振动。
下面是我的复选框首选项块,它应该是非常常见的:
加载首选项xml的首选项类:
请有人告诉我如何实现这一目标。 THX!
答案 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" />
希望这有帮助!