0

我的首选项中有 EditText,我的布局中也有 EditText。所以我想从 Preferences 中获取字符串,并在单击按钮时将其用于 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));
}

和我的偏好 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 文本变为“默认”

4

1 回答 1

0

不要getBaseContext()直接使用 - 使用“本地上下文”,在您的情况下是 Activity (因为activty 扩展了 Context)。因此,在您的示例代码中,将其替换为this

    sharedPreferences = PreferenceManager
            .getDefaultSharedPreferences( this );
于 2012-11-17T16:24:34.307 回答