将SharedPreferences与更多活动结合使用

时间:2014-03-19 17:03:59

标签: android sharedpreferences

我想保存一个给定的,然后必须在主要和次要活动之间共享。我无法理解为什么我的应用程序不起作用。

这是第二项活动:

switch (find)
{
case 0:
    lunedi1.setBackgroundColor(getResources().getColor(R.color.green)); 
    Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_LONG).show();
    pref=0;
    SharedPreferences prefs = getSharedPreferences("MyPref", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = prefs.edit();
    editor.putInt("pref", pref);
    editor.commit();

    break;

这是MainActivity:

SharedPreferences prefs = getSharedPreferences("MyPref", Context.MODE_PRIVATE);
int pref=100;
// Leggiamo l'informazione associata alla proprieta TEXT_DATA
int dato = prefs.getInt("pref", pref);
// Lo impostiamo alla TextView
if(pref==0)
{
    lunedi1.setBackgroundColor(getResources().getColor(R.color.green)); 
}
lunedi1.setOnClickListener(new OnClickListener() {  
@Override  
public void onClick(View v) {  
// TODO Auto-generated method stub 
int a=0;
final Intent intent = new Intent(MainActivity.this, Second.class);
intent.putExtra("info1", info1);
intent.putExtra("a", a);
intent.putExtra("id",id);
startActivity(intent); 
}              

以这种方式它应该传递数据,然后背景应该变为绿色,但这不会发生。

2 个答案:

答案 0 :(得分:1)

您在此处声明并初始化新变量pref

int pref=100;

所以这里

if(pref==0)

pref == 100不是0

不是积极的,但我认为你的意思是

if(dato == 0)

答案 1 :(得分:0)

使用SharedPreferences存储数据:

  SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
  SharedPreferences.Editor editor = preferences.edit();

  editor.putString("Tag","value");
  editor.commit();

SharedPreferences检索数据:

  SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
  String name = preferences.getString("Tag","");