我要做的是检查用户是否已登录到Android应用程序,然后从历史记录中删除该应用程序并重新打开它以使其转移到User_Menu
活动,而不是MainActivity
活动1}}。我使用了共享偏好但它没有用。
在MainActivity
中,我进行了功能检查以检查用户是否已登录:
public class MainActivity extends ActionBarActivity {
Button login;
Button reg;
Button guest;
@Override
protected void onCreate(Bundle savedInstanceState) {
check();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
android.app.ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#03A9F4")));
login=(Button)findViewById(R.id.button1);
reg=(Button)findViewById(R.id.Button01);
guest=(Button)findViewById(R.id.Button02);
}
public void check()
{
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String name = preferences.getString("Name", "");
if(!name.equalsIgnoreCase(""))
{
Intent intent=new Intent(getApplicationContext(),User_Menu.class);
startActivity(intent); /* Edit the value here*/
}
}
}
在用户登录时访问的User_Menu
活动中,我放了:
public class User_Menu extends ActionBarActivity {
AskConnection db;
Button lbsButton;
Button guideButton;
Button duaButton;
Button mediaButton;
Button askButton;
Button azkarButton;
Button logoutButton;
static String nameU=null;
private static final int RESULT_SETTINGS = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
//nameU=new String();
/* setLanguage();
showUserSettings();*/
android.app.ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#03A9F4")));
try {
JSONObject json_data=null;
for(int i=0;i<LoginConnection.jArray.length();i++){
json_data = LoginConnection.jArray.getJSONObject(i);
nameU=json_data.getString("name");
//list.add(answer);
// print(nameU);
}
display();
} catch(JSONException e1){
print("No Data Found");
} catch (ParseException e1) {
e1.printStackTrace();
}
}
}
当我尝试此操作时,它首先正常工作,但在我登录并重新打开应用程序后出现异常,直到我无法打开User_Menu
活动
答案 0 :(得分:0)
在检查SharedPreferences中是否有名称的方法中,如果首选项中没有用户,则启动菜单活动,但这真的是您想要做的吗?我希望,如果name.equalsIgnoreCase(“”)为true,你会想要启动菜单活动。
此外,你应该考虑添加
意图在更改为菜单活动之前清除活动堆栈中的所有活动。