Я сделал правку редактирования, но я не получаю onchangelistener
при нажатии на кнопку ОК, так как я использую слушатель ondismiss
, но когда комментирую этот код, я получаю слушатель onchange
, но после раскомментирования я не получаю onchangelistener
.
public class Preferences extends PreferenceActivity{
SharedPreferences sharedPreferences=null;
String text=null;
String negativeBtnTxt=null;
private EditTextPreference editTextPreference=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference_layout);
sharedPreferences=PreferenceManager.getDefaultSharedPreferences(getBaseContext());
Preference preference=(Preference)findPreference("customPref");
editTextPreference=(EditTextPreference)findPreference("editTextPref");
editTextPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
Log.v("in Preferences","edit text pref onclick");
dialogActivated();
return false;
}
});
editTextPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
Log.v("in Preferences","edit text pref changed");
return false;
}
});
Log.v("edit text dialog=","---"+editTextPreference.getDialog());
Log.v("ET value is=",""+sharedPreferences.getString("editTextPref", "Hello!!!"));
preference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
Toast.makeText(getApplicationContext(), "Clicked on preference", 3).show();
Log.v("in Preferences","");
return false;
}
});
}
private void dialogActivated()
{
if(editTextPreference.getDialog()!=null)
{
editTextPreference.getDialog().setCancelable(true);
editTextPreference.getDialog().setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
Log.v("in Preferences","back key cancel");
}
});
editTextPreference.getDialog().setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
Log.v("in Preferences","dismis called");
editTextPreference.getNegativeButtonText();
}
});
}
}
}