Android 从首选项获取字符串

Android 从首选项获取字符串,android,android-edittext,android-preferences,Android,Android Edittext,Android Preferences,我在首选项中有EditText,在布局中也有EditText。因此,我想从首选项中获取字符串,并在单击按钮时将其用于EditText。因此我尝试如下: public class MainActivity extends Activity{ SharedPreferences sharedPreferences; @Override public void onCreate(Bundle savedInstanceState) { super.onCre

我在首选项中有EditText,在布局中也有EditText。因此,我想从首选项中获取字符串,并在单击按钮时将其用于EditText。因此我尝试如下:

public class MainActivity extends Activity{

     SharedPreferences sharedPreferences;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        sharedPreferences = PreferenceManager
                .getDefaultSharedPreferences(getBaseContext());
}
//OnClick method
public void Button(View view) {
EditText et1 = (EditText) findViewById(R.id.edittext);
            String string = sharedPreferences
                    .getString("ime", "default");
            et1.setText(String.valueOf(string));
}
和我的prefs xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <EditTextPreference android:title="Uredi Text"
        android:key="ime"
        android:summary="ime pjesme"

        />


</PreferenceScreen>


每次我单击按钮EditText时,文本变为“默认”

不要直接使用
getBaseContext()
-使用“本地上下文”,在您的情况下,它是活动(as)。因此,在示例代码中,将其替换为
this

    sharedPreferences = PreferenceManager
            .getDefaultSharedPreferences( this );

这个问题和上一个问题有什么不同?您是否确实输入了首选项并更改了其值?您的首选项活动除了加载res xml之外还有什么作用吗?我在首选项中只有edittext,我想从该edittext中获取字符串并在布局中使用它。是的,我在首选项中输入了“测试”,在布局中再次输入了“默认值”