如果应用程序已经登录到主活动,则转到android中的登录页面
大家好。。。 我是Android领域的新手。我使用登录和注册屏幕创建了新的Android应用程序。。。我的问题是,我想知道我的应用程序是否已经被用户登录到了“转到菜单活动”中,否则请转到android中的“登录”页面。。请帮我提供样品编码或想法..提前谢谢 这是我使用的代码。对于我的Qs,但它不起作用如果应用程序已经登录到主活动,则转到android中的登录页面,android,android-activity,login,Android,Android Activity,Login,大家好。。。 我是Android领域的新手。我使用登录和注册屏幕创建了新的Android应用程序。。。我的问题是,我想知道我的应用程序是否已经被用户登录到了“转到菜单活动”中,否则请转到android中的“登录”页面。。请帮我提供样品编码或想法..提前谢谢 这是我使用的代码。对于我的Qs,但它不起作用 package com.example.android_todist; import java.util.logging.Handler; import java.util.regex.M
package com.example.android_todist;
import java.util.logging.Handler;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.os.Handler;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v7.app.ActionBarActivity;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
public class SplashActivity extends Activity {
Intent intent;
String userName,password;
SharedPreferences pref;
Editor editor;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
pref = PreferenceManager.getDefaultSharedPreferences(this);
String storedUsername = pref.getString(userName, "");
String storedPassword = pref.getString(password, ""); //return nothing if no pass saved
if (!storedUsername .equalsIgnoreCase("") || !storedPassword .equalsIgnoreCase("")) {
Intent intent = new Intent(this, Todist1.class);
startActivity(intent);
finish();
}else {
Intent intent = new Intent(this, Login.class);
startActivity(intent);
}
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startActivity(intent);
finish();
}
}, 3000);
}
}
它将重定向到主页。但如果新用户打开我的应用程序,它也会重定向到主页,无法获得登录页面
这是我的错误日志..:
07-24 04:21:36.135: E/AndroidRuntime(1080): FATAL EXCEPTION: main
07-24 04:21:36.135: E/AndroidRuntime(1080): java.lang.NullPointerException
07-24 04:21:36.135: E/AndroidRuntime(1080): at
android.app.Instrumentation.execStartActivity(Instrumentation.java:1410)
07-24 04:21:36.135: E/AndroidRuntime(1080): at
android.app.Activity.startActivityForResult(Activity.java:3370)
07-24 04:21:36.135: E/AndroidRuntime(1080): at
android.app.Activity.startActivityForResult(Activity.java:3331)
07-24 04:21:36.135: E/AndroidRuntime(1080): at
android.app.Activity.startActivity(Activity.java:3566)
07-24 04:21:36.135: E/AndroidRuntime(1080): at
android.app.Activity.startActivity(Activity.java:3534)
07-24 04:21:36.135: E/AndroidRuntime(1080): at
com.example.android_todist.SplashActivity$1.run(SplashActivity.java:50)
07-24 04:21:36.135: E/AndroidRuntime(1080): at
android.os.Handler.handleCallback(Handler.java:725)
07-24 04:21:36.135: E/AndroidRuntime(1080): at
android.os.Handler.dispatchMessage(Handler.java:92)
07-24 04:21:36.135: E/AndroidRuntime(1080): at
android.os.Looper.loop(Looper.java:137)
07-24 04:21:36.135: E/AndroidRuntime(1080): at
android.app.ActivityThread.main(ActivityThread.java:5041)
07-24 04:21:36.135: E/AndroidRuntime(1080): at
java.lang.reflect.Method.invokeNative(Native Method)
07-24 04:21:36.135: E/AndroidRuntime(1080): at
java.lang.reflect.Method.invoke(Method.java:511)
07-24 04:21:36.135: E/AndroidRuntime(1080): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-24 04:21:36.135: E/AndroidRuntime(1080): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-24 04:21:36.135: E/AndroidRuntime(1080): at
dalvik.system.NativeStart.main(Native Method)
创建一个
SplashActivity
类,然后在这里检查凭据
public class SplashActivity extends Activity {
/** Called when the activity is first created. */
Intent intent;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
String storedUsername = prefs.getString(KEY_USERNAME, "Default Value if not found");
String storedPassword = prefs.getString(KEY_PASSWORD, ""); //return nothing if no pass saved
if (!storedUsername .equalsIgnoreCase("") || !storedPassword .equalsIgnoreCase("")) {
intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
}else {
intent = new Intent(this, LoginActivity.class);
startActivity(intent);
}
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
startActivity(intent);
finish();
}
}, 3000);
}
}// class
选中此项请查看我的编码…删除
import java.util.logging.Handler代码>您的编码正在工作正在工作。。但是,如果登录到intnet,则项目将停止。。显示错误android.app.Instrumentation.execStartActivity示例.android_todist.SplashActivity$1.run at android.os.handle.handleCallback(handle.java:725)抱歉,我已经尝试过了。。拥有15+的上传图像声誉..感谢您的回复..实际上..已经使用共享首选项存储了登录用户详细信息..我的需要是用户是否打开我的应用..如果他们已经登录意味着..重定向主页否则重定向到登录页面..处理程序处理程序=新处理程序();handler.postDelayed(new Runnable(){On handler无法在postDelayed上实例化类型处理程序将强制转换为hnadler..}您得到了什么错误??发布Logcat值。很抱歉,我得到了红色下划线错误..显示{On handler无法在postDelayed上实例化类型处理程序将强制转换为hnadler..}import android.os.Handler;
import this到您的代码中。如果您已经登录到设备,它将正确地进入主活动,但是如果您想进入同一设备中的其他用户的登录活动,您应该首先注销,您必须在首选项中保存false。我已经使用共享首选项存储了登录用户详细信息。..My need是指用户是否打开我的应用..如果他们已经登录意味着..重定向主页或重定向到登录页。。