2017-10-10 76 views
-2

我有一个登录页面,所以为此我使用SharedPreferences。我正在努力拯救价值。 没有价值,它不应该去到另一个Activity对于我在登录页面给出这样的:条件不工作在sharedpreferences android

if((spf != null) && (spv !=null) && (et1v != null) && (et2v != null) && (et3v != null) && 

      (sp != null) && (et1 != null) && (et2 != null) && (et3 != null)){ 

      finish(); 
      Intent i = new Intent(Login.this,Welcome.class); 
      startActivity(i); 
    } 
     else{ 
      btn1.setOnClickListener(
        new View.OnClickListener() { 
         @Override 
         public void onClick(View view) { 

          if (sp.getSelectedItem().toString().length() > 0 && 
            et1.getText().toString().length() > 0 && 
            et2.getText().toString().length() > 0 && 
            et3.getText().toString().length() > 0) 

          { 
           SharedPreferences spf = getSharedPreferences("newprfs", Context.MODE_PRIVATE); 
           SharedPreferences.Editor spe = spf.edit(); 
           spe.putString("uname",sp.getSelectedItem().toString()); 
           spe.putString("password",et1.getText().toString()); 
           spe.putString("mobile",et2.getText().toString()); 
           spe.putString("dept",et3.getText().toString()); 

           spe.commit(); 

           finish(); 
           Intent i = new Intent(Login.this,Welcome.class); 
           startActivity(i); 
          } 
         } 
        } 
      ); 
     } 

这是我的欢迎页面

SharedPreferences spf = getSharedPreferences("newprfs", Context.MODE_PRIVATE); 
     SharedPreferences.Editor spe = spf.edit(); 
     String spv = spf.getString("uname",""); 
     String et1v = spf.getString("password",""); 
     String et2v = spf.getString("mobile",""); 
     String et3v = spf.getString("dept",""); 

     if((spe != null) && (spv !=null) && (et1v != null) && (et2v != null) && (et3v != null) && 
       (sp != null) && (et1 != null) && (et2 != null) && (et3 != null)){ 
     new Handler().postDelayed(new Runnable(){ 
      @Override 
      public void run() { 
        Intent i = new Intent(Welcome.this,MainActivity.class); 
        startActivity(i); 
        Welcome.this.finish(); 
      } 
     }, SPLASH_DISPLAY_LENGTH); 
    } 
     else{ 
      Intent i = new Intent(Welcome.this,Login.class); 
      startActivity(i); 
      Welcome.this.finish(); 
     } 
    }  

的问题是,它总是呈现出空白屏幕。我试图用Log.d("@@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@@@")查询; 所以我认识到它的加载总是在登录页面和if condition不工作..任何人可以告诉我最新错误if Condition..

更新 这里它不是问题的共享偏好设置。但在这里它与条件的问题...

我的If Condition没有输入数值不应该移动到下一个......而且如果值已定义以前它应该移动到下一页...

所以它移动到下一页和在下一页中也同样发生因为我已经给出了相同的条件并再次移动到登录页面。所以它停留在单页上,我变得空白屏幕。

+0

你必须定义sharedpreferences上面的if()条件 –

+0

我已经定义它不是一个问题..这里的条件问题在这里我可以获取登录细节我检查了吐司,但与该条件的问题... – ravi

+0

我使用'共享首选项'在输入所有详细信息后,登录页面按钮将不起作用...请任何回答我的紧急 – ravi

回答

0

您需要contains(String Key)

来试试这个spv.contains("uname")代替(spv !=null)spv.equals("")我也面临这个问题最好用的Hashmap ...但这种方式更适合您的情况..

+0

谢谢...它工作我只是在寻找这个东西 – ravi

+0

我已经在10月10日的回答10 oktober回答了这个问题。 @ravi并不重要,但不是很好。 – jobbert

+0

这是好@jobbert但Inst-ed的给予答案的评论..你需要更新你的答案,也@Ravi比较天气的价值是否存在所以他必须使用'包含(字符串键)。' – MLN