2014-04-05 40 views
0

在我的首選活動中,我使用了一個警告對話框,但我在OnSharedPreferenceChangeListener上遇到錯誤,我在某處做錯了嗎?請幫助我,謝謝!Android:在Preferences.xml中的對話框[需要幫助]

public class MainSettings extends  PreferenceActivity implements //getting error here  OnSharedPreferenceChangeListener 
{ 


    private WebView webView4; 


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


    } 

      public boolean onPreferenceTreeClick 
(PreferenceScreen preferenceScreen, 
        final Preference preference) 
{ 
      if 
(preference.equals("dialog_preference")) 
{ 


     AlertDialog.Builder adb = new AlertDialog.Builder(this); 
     adb.setCancelable(false); 
      adb.setView(webView4); 
      adb.setTitle("What's New?"); 
      adb.setIcon(R.drawable.alert_icon); 
      adb.setPositiveButton("OK", new DialogInterface.OnClickListener() { 


        public void onClick(DialogInterface dialog, int id) { 


        } 
       }); 


      adb.show(); 



     } 
+0

安置自己的堆棧跟蹤。 – ChuongPham

+0

未知條目'OnSharedPreferenceChangeListener' –

+0

請參閱下面的答案。 – ChuongPham

回答

0

您需要將其聲明爲:

public class MainSettings extends PreferenceActivity implements OnSharedPreferenceChangeListener { 
    ... 
} 

而且,爲了OnSharedPreferenceChangeListener進行編譯,你需要導入下面的類:

import android.content.SharedPreferences.OnSharedPreferenceChangeListener; 

OnSharedPreferenceChangeListener是包含在android.jar文件中,因此請確保您將此庫包含在您的項目中。

另外,你需要定義onSharedPreferenceChanged方法來捕獲變更共享偏好:

@Override 
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { 
    if (key.equalsIgnoreCase("your_key")) { 
     // display your dialog here 
    } 
} 
+0

我做了你所提到的一切,警告對話框仍然沒有彈出:( –

+0

這是因爲你還沒有定義** PreferenceActivity的** onSharedPreferenceChanged方法,所以當共享偏好改變時,Android不知道你想要做什麼。看到我上面更新的答案。 – ChuongPham