我可以使用默认摘要显示EditTextPreference.现在我想更新它,当我在编辑文本框中输入新值并单击确定然后它应该更新摘要的值.但我无法做到这一点.我的代码如下,请在我的代码中更新所需.
public class Prefs extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
final EditTextPreference pref = (EditTextPreference)findPreference("username");
pref.setSummary(pref.getText());
pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
final EditTextPreference pref = (EditTextPreference)findPreference("username");
pref.setSummary(pref.getText());
return true;
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
xml文件是
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<EditTextPreference
android:title="User Name"
android:key="username"
android:summary="Please provide user name" />
<EditTextPreference
android:title="Password"
android:password="true"
android:key="password"
android:summary="Please enter your password" />
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
实际上我的代码更新了以前的输入值作为摘要文本 单击"确定"按钮时如何将文本显示为摘要.谢谢
如何保存当前选定的微调器值,以便在重新打开应用程序时,默认情况下会自动选择保存的值?
我目前的代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loginpage);
final Spinner spinner = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.spinner_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences( getBaseContext());
SharedPreferences.Editor prefEditor = prefs.edit();
prefEditor.putString("savedValue",spinner.getSelectedItem().toString());
String savedValue=spinner.getSelectedItem().toString();
for(int i=0;i<6;i++)
if(savedValue.equals(spinner.getItemAtPosition(i).toString()))
{
spinner.setSelection(i);
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent){}
});
Run Code Online (Sandbox Code Playgroud)