2013-10-26 69 views
0

我正在使用android共享首选项。我的要求是当应用程序打开时,一个带提交按钮的编辑文本框将 来。当点击提交按钮时,它将移动到第二页。在这里,关闭应用程序后,如果我再次打开,然后 第二页应直接打开。我正在使用自动登录功能。因此,我使用共享偏好的概念。但我的代码不起作用。当我再次打开应用程序时,它仅显示第一页。将数据存储在共享首选项中不起作用

请帮我解决这个问题。

我的代码:

Page1: 

    private SharedPreferences mPreferences; 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     edt = (EditText) findViewById(R.id.edt); 
mPreferences = getSharedPreferences("CurrentUser", MODE_PRIVATE); 

} 

public void submit(View v) 
{ 

    userphnnumber = edt.getText().toString().trim(); 
SharedPreferences.Editor editor = mPreferences.edit(); 

editor.putString("UserName", userphnnumber); 

editor.commit(); 

} 

Page2: 

    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.list); 

     mPreferences = getSharedPreferences("CurrentUser", 0); 
     myVal = mPreferences.getString("UserName", null); 
     System.out.println("the myval" + myVal); 
} 

回答

0

中的第一个 '页' 的的onCreate,做到这一点。

mPreferences = getSharedPreferences("CurrentUser", Context.MODE_PRIVATE); 
String myVal = mPreferences.getString("UserName", null); 
if(myVal != null) { 
    startActivity(new Intent(this, SecondPage.class)); 
} 

在提交函数中,执行此操作。

String userphnnumber = edt.getText().toString().trim(); 
SharedPreferences.Editor editor = mPreferences.edit(); 
editor.putString("UserName", userphnnumber); 
editor.commit(); 

希望这会有所帮助。

+0

您好,感谢您的回复..告诉我们要保持在第一页的创建...是我们应该保持在第一页还是第二页? – Amrutha

+0

'if()'检查应该在第一页的onCreate中,这样,如果用户已经在之前的运行中提交了电话号码,我们可以移到第二页上,而不是留在第一页上。仅供参考:我们不会在Android中调用屏幕“页面”,它被慷慨地称为“活动”:) –

+0

嗨,谢谢你,他工作正常......我还需要在sharedpref中存储arraylist。你可以告诉我如何在sharedpref中存储数组列表吗? – Amrutha