要在Android中使用EditTextPreference对话框显示前一次调用的值,可以通过以下步骤解决:
public class MyPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 加载PreferenceScreen
addPreferencesFromResource(R.xml.preferences);
// 获取EditTextPreference
EditTextPreference editTextPreference = (EditTextPreference) findPreference("edit_text_preference");
// 设置EditTextPreference的当前值
editTextPreference.setSummary(editTextPreference.getText());
// 监听EditTextPreference的值变化
editTextPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
// 更新EditTextPreference的摘要
preference.setSummary(newValue.toString());
return true;
}
});
}
}
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 加载PreferenceFragment
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new MyPreferenceFragment())
.commit();
}
}
通过这种方式,每次显示EditTextPreference对话框时,它都会显示上一次调用的值,并且在值更改时会更新摘要。