これは私のためにトリックを行いました、ただオーバーライドしますonPreferenceTreeClick()
:
/**
* Automatically sets cursor to the last position in EditTextPreference
*
* @param preferenceScreen The {@link PreferenceScreen} that the
* preference is located in.
* @param preference The preference that was clicked.
* @return Whether the click was handled.
*/
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, @NotNull Preference preference) {
super.onPreferenceTreeClick(preferenceScreen, preference);
Preference clickedPreference = findPreference (preference.getKey ());
if (clickedPreference instanceof EditTextPreference) // check if EditTextPreference
{
Editable editable = ((EditTextPreference) clickedPreference).getEditText().getText();
Selection.setSelection(editable, editable.length()) ; // set the cursor to last position
return true;
}
return false;
}
PreferenceFragmentを使用したことを覚えておいてください。ただし、PreferenceActivityについても同じです。
このソリューションは、http: //www.phonesdevelopers.com/1816051/から採用されています。