首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SwitchPreference振动

SwitchPreference振动
EN

Stack Overflow用户
提问于 2016-08-31 02:38:21
回答 1查看 301关注 0票数 1

我有一个SwitchPreference,如果手机振动或不振动,它应该可以处理。

我目前有这个:

代码语言:javascript
复制
 import android.os.Vibrator;
 ...

 public static final String PREF_CHANGE_THEME = "Changetheme";
 private SwitchPreference mSwitchPreference;
 private static SharedPreferences sPrefs;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    sPrefs = PreferenceManager.getDefaultSharedPreferences(this);
    mSwitchPreference = (SwitchPreference) findPreference(PREF_CHANGE_THEME);

我希望能够做到这一点:

代码语言:javascript
复制
sPrefs = PreferenceManager.getDefaultSharedPreferences(this);
        mSwitchPreference = (SwitchPreference)

//If enabled execute the following:
Vibrator v = (Vibrator) this.context.getSystemService(Context.VIBRATOR_SERVICE);
     // Vibrate for 500 milliseconds
     v.vibrate(500);
//Else: nothing

我应该使用的正确语法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-31 03:50:42

在您的preference xml中:

代码语言:javascript
复制
<SwitchPreference
    android:key="Changetheme"
    android:title="vibrate"
    android:defaultValue="false" />

你的java代码应该是这样的:

代码语言:javascript
复制
public class SettingActivity extends PreferenceActivity implements onSharedPreferenceChangeListener {

    public SwitchPreference mSwitchPreference;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.sample);

        mSwitchPreference = (SwitchPreference) findPreference(PREF_CHANGE_THEME); //Preference Key
       mSwitchPreference.setOnPreferenceChangeListener(this);
    }

    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
        if (key.equals(PREF_CHANGE_THEME)) {
        boolean isEnable = sharedPreferences.getBoolean(PREF_CHANGE_THEME, false);
        //Do whatever you want here. This is an example.
        if (isEnable) {
            mSwitchPreference.setSummary("Enabled");
        } else {
            mSwitchPreference.setSummary("Disabled");
        }
    }

    @Override
    public void onResume() {
        super.onResume();

        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(TestPrefActivity.this);
        boolean isEnable = preferences.getBoolean(PREF_CHANGE_THEME, false);

        if (isEnable) {
            mSwitchPreference.setSummary("Enabled");
        } else {
            mSwitchPreference.setSummary("Disabled");
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39234826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档