2011-03-28 79 views
2

我的活動低於如何從首選項屏幕中打開AlertDialog?

import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.content.SharedPreferences.OnSharedPreferenceChangeListener; 
import android.os.Bundle; 
import android.preference.Preference; 
import android.preference.Preference.OnPreferenceChangeListener; 
import android.preference.PreferenceActivity; 
import android.preference.PreferenceScreen; 

public class locationserviceSettings extends PreferenceActivity implements OnPreferenceChangeListener,OnSharedPreferenceChangeListener{ 

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

    // PreferenceManager.setDefaultValues(notificationSettings.this, R.xml.notification, true); 
    } 



    @Override 
    public boolean onPreferenceChange(Preference preference, Object newValue) { 
     // TODO Auto-generated method stub 
     System.out.println("Preference changed " + newValue); 
     return false; 
    } 



    @Override 
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, 
      String key) { 
     // TODO Auto-generated method stub 
     System.out.println("Shared preference changed" + key); 
    } 

} 




<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 
    <PreferenceCategory android:title="Location service settings"> 
     <CheckBoxPreference android:title="Location service" 
      android:key="locationService" android:defaultValue="true" 
      android:summary="checked for start location service in background"></CheckBoxPreference> 
    </PreferenceCategory> 
    <EditTextPreference android:title="Minimum time seconds" 
     android:key="time" android:dependency="locationService" 
     android:summary="Miminum time in seocnds for update location"></EditTextPreference> 
    <EditTextPreference android:title="Minimum distance meters" 
     android:key="distance" android:dependency="locationService" 
     android:summary="Miminum distance in meters for update location"></EditTextPreference> 
</PreferenceScreen> 

這兩種方法都沒有任何打印當我chacked的checkPreference

+0

使用'Log.d(標籤,味精);',而不是'的System.out.println(MSG);' – Maaalte 2011-03-28 11:05:39

回答

3

使用onPreferenceStartFragment()。它成爲已棄用onPreferenceTreeClick()的替代品。

+0

我用onPreferenceTreeClick(),這是工作謝謝 – Dharmendra 2011-03-28 11:55:52

1

註冊您(在的onCreate()爲例)監聽器是這樣的:

timePref = getPreferenceScreen().findPreference("time"); 
    distancePref = getPreferenceScreen().findPreference("distance"); 


    timePref.setOnPreferenceChangeListener(this); 
    distancePref.setOnPreferenceChangeListener(this);