2017-10-10 1 views
-2

Ich habe eine Login-Seite, so dass ich SharedPreferences verwende. Ich versuche Werte zu sparen. Ohne Wert, sollte es nicht gehen an die anderen Activity für, dass ich diese Seite in Anmeldung gegeben habe:Bedingung funktioniert nicht in geteilten Preferences 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); 
          } 
         } 
        } 
      ); 
     } 

dies meine Seite Willkommen

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(); 
     } 
    }  

Das Problem ist, dass es immer ein leeres zeigt Bildschirm. Ich habe versucht, mit Log.d("@@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@@@") zu überprüfen; so erkannte ich zu seiner Ladung immer in Login-Seite und if condition funktioniert nicht .. kann mir jemand vorschlagen, was ist falsch in if Condition..?

aktualisieren Hier Es ist nicht Problem Geteilt Prefs .. Aber hier Es ist das Problem Zustand ...

ich die If Condition ohne Werte eingeben es nicht zum nächsten bewegen sollte ... und auch wenn Werte bereits vorher definiert sollte es zur nächsten Seite gehen ...

So geht es zur nächsten Seite und auf der nächsten Seite auch gleich passiert da ich denselben Zustand angegeben habe und schon wieder auf die Anmeldeseite gewechselt bin. Also bleibt es auf der Single-Seite und ich bekomme den leeren Bildschirm.

+0

Sie sharedpreferences definieren müssen über der if() Bedingung –

+0

Ich habe bereits definiert Es ist kein Problem..Hier das Problem mit der Bedingung Hier kann ich Login-Details bekommen Ich habe mit Toast überprüft, aber das Problem mit dieser Bedingung ... – ravi

+0

Ich verwende 'shared preference', in Login-Seite Button funktioniert nicht nach Eingabe aller Details ... bitte beantworten Sie mir seine dringend – ravi

Antwort

0

Sie müssen sich mit contains(String Key)

Versuchen Sie, diese spv.contains("uname") statt (spv !=null) oder spv.equals("") ich auch angesichts dieses Problem besser versuchen HashMap zu verwenden ... aber das funktioniert für Ihren Fall ..

+0

danke ... Es funktioniert ich suche nur nach dieser Sache – ravi

+0

Ich antwortete bereits in den Kommentaren am 10. Oktober meiner Antwort 10. Oktober. Es spielt keine Rolle, @ravi, aber nicht sehr nett. – jobbert

+0

Das ist gut @jobbert Aber Inst-ed Antwort in Kommentaren zu geben .. Sie müssen Ihre Antwort zu aktualisieren und auch @Ravi ist im Vergleich Wetter das Tal ist da oder nicht Also muss er 'enthält (String Key) ..' – MLN

Verwandte Themen