根据复选框是否被选中提供振动反馈
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" />
希望对您有所帮助!
我正在尝试为我的应用程序开发一个设置列表,基本上我想在我的设置中有一个复选框,允许用户决定是否允许在应用程序中振动。
选中复选框时在我的应用程序中实现振动效果非常简单,但是当用户在设置中选中复选框时,我无法找到一种方法来为用户提供即时振动反馈。具体来说,我希望设备在用户选中复选框时振动,当然当用户取消选中时不振动。
下面是我的复选框首选项块,应该很常见:
以及加载偏好 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" />
希望对您有所帮助!