在我的Android应用程序中,当用户成功登录Facebook和Google Plus时,用户有一个确认活动,其中有下一个按钮处于禁用模式。同时,admin将从数据库启用用户。如果用户将通过管理员从数据库启用,则将启用确认活动和下一个按钮,用户可以移至下一个活动。当用户第二次打开应用程序时,用户将能够显示确认活动。
我不知道如何应用这个逻辑:
情境:
第一幕:
Splash screen->Login->success->confirmation activity
第二场景:
ConfirmationActivty->Next button enable
答案 0 :(得分:0)
您可以设置" next"的可见性按钮到" GONE"并在后台向您的服务器进行网络呼叫,以检查管理员是否已批准。如果获得批准,您可以将按钮的可见性设置为" VISIBLE"。在网络通话期间,您可以启动进度对话框。点击here查看如何使用可见性。
[<强>更新强>] 你可以使用类似的东西:
final SharedPreferences prefs = getApplicationContext().getSharedPreferences(
Constants.LAUNCH_TIME_PREFERENCE_FILE, Context.MODE_PRIVATE);
editor = prefs.edit();
profile = getApplicationContext().getSharedPreferences(Constants.PROFILE_PREFERENCE_FILE,Context.MODE_PRIVATE);
if (!prefs.getBoolean(Constants.FIRST_TIME,false)) {
// <---- run your one time code here
Intent intent = new Intent(this,first_screen.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
答案 1 :(得分:0)
您可以将SharedPreferences或文件或数据库用于用户的历史数据,并检查用户是否符合您的条件。然后你可以让他从一个活动转移到另一个活动。检查这些链接 SharedPreferences Totorial
答案 2 :(得分:0)
假设SplashActivity.java
是您的主要活动
更改您的代码,如下所示
public class SplashActivity extends Activity {
SharedPreferences preferences;
SharedPreferences.Editor prefEditor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
preferences = getSharedPreferences("MyPreference", MODE_PRIVATE);
// returns true if value does not exist
// if it's users first time this will return true
if( preferences.getBoolean ("isFirstTime", true)){
prefEditor = preferences.edit();
// changes the value
prefEditor.putBoolean("isFirstTime", false).commit();
}else{
// add your code to open your Confirmation Activity
finish();
return;
}
// rest of your code including `setContentView()`
}
}
答案 3 :(得分:0)
第一场景:
您应该在首选项中设置标志isUserLoggedIn
,默认情况下为false。
用户登录后,将此标志设置为true。
在LoginActivity
onCreate()
中,检查首选项中的该标志,如果为真,则完成活动并启动confirmationActivity
否则不执行任何操作。
第二场景:
在这里,您还可以保持与登录相同的标志isUserConfirmed
。并且您可以在收到通知后将服务器发送给用户,将标志更新为true。如果活动位于前台,请启用ConfirmationActivity
上的按钮。