0

기본 설정 조각을 사용하여 환경 설정 메뉴를 만들었습니다 (아래 참조). 메뉴가 작동하고 설정 메뉴를 실제 기능에 연결하려고합니다. 블루투스를 비활성화하고 활성화하려면 xml의 블루투스 설정을 사용하고 싶습니다. bluetooth.disable() 함수를 사용하여이 작업을 수행 할 수 있음을 알고 있지만 어떻게 호출해야할지 모르겠습니다. onSharedPreferenceChanged 함수를 사용해야합니까? xml 내에서 액션을 생성해야합니까? 또는 어떻게 든 BLUETOOTH_SERVICE을 사용해야합니까?Android 기본 설정 블루투스 사용 중지

import android.os.Bundle; 
import android.preference.PreferenceActivity; 
import android.preference.PreferenceFragment; 

public class UserSettings extends PreferenceActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    getFragmentManager().beginTransaction().replace(android.R.id.content, 
       new PrefsFragment()).commit(); 
} 

public static class PrefsFragment extends PreferenceFragment{ 

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

     addPreferencesFromResource(R.xml.user_settings); 
    } 
} 

} 여기

은 XML입니다 :

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > 
    <PreferenceCategory android:title="BluetoothSettings"> 
    <CheckBoxPreference 
     android:defaultValue="true" 
     android:key="prefService" 
     android:summary="Bluetooth Settings" 
     android:title="Bluetooth" > 
    </CheckBoxPreference> 
</PreferenceCategory> 

<PreferenceCategory android:title="Notifications" > 
    <CheckBoxPreference 
     android:defaultValue="false" 
     android:key="prefLockScreen" 
     android:summary="Enable Notifications" 
     android:title="Notify" > 
    </CheckBoxPreference> 

    <ListPreference 
     android:key="prefUpdateFrequency" 
     android:title="Notification Settings" 
     android:summary="Set Specific Notification Settings" 
     android:entries="@array/updateNotifications" 
     android:entryValues="@array/updateNotificationValues" 
     /> 
</PreferenceCategory> 

답변

0

이 내가 할 것 인 것이다. OnSharedPreferenceChangeListener를 재정의하십시오. 또한

public class UserSettings extends PreferenceActivity implements 
    OnSharedPreferenceChangeListener { 
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key) { 

    if (key.equals("prefService")) { 


       enable/disable here 

    } 
} 

등록 청취자 prefs.registerOnSharedPreferenceChangeListener 등록을 취소 (이)를 기억하고; prefs.unregisterOnSharedPreferenceChangeListener (this);

+0

감사합니다. 청취자는 주 활동에 등록해야합니까? 그것은 내가 조각에서 그것을하게하지 않을 것이다? –

+0

public void onResume() { super.onResume(); getPreferenceManager(). getSharedPreferences(). registerOnSharedPreferenceChangeListener (this); } 공개 무효 onPause() { getPreferenceManager() getSharedPreferences() unregisterOnSharedPreferenceChangeListener (이)..; super.onPause(); } –