2011-01-20 4 views
0

私はEditTextPreferenceを持っています。ユーザーが設定を編集してOKを押すと、コミットする前にエラーをフォーマットするための値をチェックしたいと思います。設定にコミットする前に、環境設定文字列の値を確認してフォーマットしてください。

public class Preferences_Default extends PreferenceActivity implements OnSharedPreferenceChangeListener { 

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

      addPreferencesFromResource(R.layout.prefs_default); 
    } 
} 

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

     // Set up a listener whenever a key changes    
     getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 

     // Unregister the listener whenever a key changes 

getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);  

    } 

    @Override 
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { 
     //This just calls a function to update the Pref Summary 
     Preference pref = findPreference(key); 
     initSummary(pref); 

    } 

ここで、値をチェックする関数と、変更された場合の設定値を再コミットするコードを呼び出します。

答えて

2

友達、あなただけの指定されたとおり、あなたのコードでこれをチェックする必要があります:あなたはそれが

@Override 
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { 
//function to check 

boolean b=check(); 

    //This just calls a function to update the Pref Summary 

if(b) 
{  
Preference pref = findPreference(key); 
    initSummary(pref);} 

else{ 
//whatever you want to do show error 
} 

} 
+0

Percfectに更新されます前に、それを最初の行を配置する必要があり好みが後に更新されるように...ありがとうルーチンは、基本設定が実際に更新された後に呼び出されましたが、Iと呼ばれます。いい男。 –

+0

いつもここで助けてください... –

関連する問題