小编atu*_*dav的帖子

单击"确定"按钮时如何更新EditTextPreference现有摘要

我可以使用默认摘要显示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)

实际上我的代码更新了以前的输入值作为摘要文本 单击"确定"按钮时如何将文本显示为摘要.谢谢

android

4
推荐指数
1
解决办法
1万
查看次数

使用共享首选项保存微调器选定项的值

如何保存当前选定的微调器值,以便在重新打开应用程序时,默认情况下会自动选择保存的值?

我目前的代码:

 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)

android spinner android-preferences sharedpreferences

4
推荐指数
1
解决办法
7528
查看次数