您好我已经做到这一点,以便在我的应用中,用户通过点击按钮将他们引导到他们的图库来选择个人资料图片。他们选择了图片并且很好但是一旦我退出应用程序或从多任务中删除,配置文件图片已经消失。我怎么能保存它?我知道我需要共享的prefs,但我不完全确定如何在代码中使用它。我是初学者。
答案 0 :(得分:0)
你需要覆盖onPause()方法并保存你的照片。 当你想要获取它们时,你在Shered prefs对象上调用getString方法,如果方法找不到密钥,则第二个参数是默认值。 这是:
package com.example.sharedpreferences;
import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.view.Menu;
import android.widget.EditText;
public class MainActivity extends Activity {
EditText et1;
EditText et2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et1=(EditText)findViewById(R.id.editText1);
et2=(EditText)findViewById(R.id.editText2);
SharedPreferences sp = getPreferences(Activity.MODE_PRIVATE);
et1.setText(sp.getString("il.co.gal.text1", ""));
et2.setText(sp.getString("il.co.gal.text2", ""));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
protected void onPause() {
super.onPause();
SharedPreferences sp = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor=sp.edit();
editor.putString("il.co.gal.text1", et1.getText().toString());
editor.putString("il.co.gal.text2", et2.getText().toString());
editor.commit();
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onRestoreInstanceState(savedInstanceState);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
}
}