我正在创建一个应用程序,其中注册页面的数量为3。当用户在第一页上注册并保存时,它会转到第二页,依此类推。如果假设用户仅在第一页上注册并关闭了应用程序,那么当用户打开应用程序时,应该将用户带到第二页注册。怎么做?
答案 0 :(得分:1)
假设您的拳头注册页面包含电子邮件和密码。
如果首页注册成功,则在SharedPreferences
中设置第一页的数据,如下所示。
AppTypeDetails是SharedPreferences的类。
AppTypeDetails.getInstance(SignUpActivity.this).setEmail(<Your Email ID>);
AppTypeDetails.getInstance(SignUpActivity.this).setPassword(<Your Password>);
<强> AppTypeDetails.java 强>
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
public class AppTypeDetails {
private SharedPreferences sh;
private AppTypeDetails() {
}
private AppTypeDetails(Context mContext) {
sh = PreferenceManager.getDefaultSharedPreferences(mContext);
}
private static AppTypeDetails instance = null;
/**
*
* @param mContext
* @return {@link AppTypeDetails}
*/
public synchronized static AppTypeDetails getInstance(Context mContext) {
if (instance == null) {
instance = new AppTypeDetails(mContext);
}
return instance;
}
// get username
public String getEmail() {
return sh.getString("email", "");
}
public void setEmail(String email) {
sh.edit().putString("email", email).commit();
}
// get password
public String getPassword() {
return sh.getString("password", "");
}
public void setPassword(String password) {
sh.edit().putString("password", password).commit();
}
public void clear() {
sh.edit().clear().commit();
}
}
现在关闭你的应用并再次打开
现在在启动画面中查看以下代码。
String email = AppTypeDetails.getInstance(SplashScreen.this).getEmail();
String pass = AppTypeDetails.getInstance(SplashScreen.this).getPassword();
if (email == null && pass == null) {
// Open First SignUp page
} else {
// Open Second SignUp page
}
继续。
如果注册页面2成功,则在SharedPreferences
中保存第二页的数据,并在启动画面中检查第一页和第二页的数据。
如果第一页和第二页的数据不为空,则直接打开第3页。
清除SharedPreferences
:
注销时调用clear()方法。
答案 1 :(得分:0)
如果您想拥有一个开始图标,但希望根据当前状态显示不同的活动 (或@Chirag Savsani建议的共享偏好) 你可以实现一个不可见的StartupActivity来决定哪个活动应该是可见的
public class StartupActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (!hasUserRegistered()) {
startActivity(new Intent(this, RegisterUserActivity.class));
} else if (!hasUserLogedIn()) {
startActivity(new Intent(this, LoginUserActivity.class));
} else {
startActivity(new Intent(this, MainActivity.class));
}
finish(); // else StartupActivity keeps open after started activity closes
}
}
在manifest.xml中将此StartupActivity设置为唯一的&#34; LAUNCHER&#34;使它出现在android程序管理器
中<manifest ...>
<application... >
<activity android:name="StartupActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
...
</application>
</manifest>