2016-08-07 12 views
-1

In meiner Anwendung startet ein Benutzer die Anwendung und versucht, sich anzumelden, die Anwendung überprüft, ob es im freigegebenen Set < Benutzer> mit der Liste der Anmeldeinformationen für alle Benutzer, wenn es nicht vorhanden ist erstellen es von Grund auf neu .... Hier ist meine Frage ist, wie überprüfe ich in der gemeinsamen Existenz dieses Set < Benutzer>?SharedPreferences zum Speichern von Login-Daten

+0

Dies ist eine sehr weit gefasste Frage Daten durch putString Methode der Klasse Editor speichern. Im Allgemeinen können Sie SharedPrefs nicht verwenden, um eine Liste von Benutzern direkt zu speichern. Es gibt einige Bibliotheken, die dies durch einen benutzerdefinierten Wrapper überwinden. Vielleicht möchten Sie sie überprüfen. –

Antwort

1

Hier sehen Sie sich meinen Code für gemeinsame Einstellungen an. Dieser Code speichert Ihre Anmeldedaten.

public class MainActivity extends Activity { 
SharedPreferences sharedpreferences; 
TextView name; 
TextView email; 
public static final String mypreference = "mypref"; 
public static final String Name = "nameKey"; 
public static final String Email = "emailKey"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    name = (TextView) findViewById(R.id.etName); 
    email = (TextView) findViewById(R.id.etEmail); 
    sharedpreferences = getSharedPreferences(mypreference, 
      Context.MODE_PRIVATE); 
    if (sharedpreferences.contains(Name)) { 
     name.setText(sharedpreferences.getString(Name, "")); 
    } 
    if (sharedpreferences.contains(Email)) { 
     email.setText(sharedpreferences.getString(Email, "")); 

    } 

} 

public void Save(View view) { 
    String n = name.getText().toString(); 
    String e = email.getText().toString(); 
    Editor editor = sharedpreferences.edit(); 
    editor.putString(Name, n); 
    editor.putString(Email, e); 
    editor.commit(); 
} 

public void clear(View view) { 
    name = (TextView) findViewById(R.id.etName); 
    email = (TextView) findViewById(R.id.etEmail); 
    name.setText(""); 
    email.setText(""); 

} 

public void Get(View view) { 
    name = (TextView) findViewById(R.id.etName); 
    email = (TextView) findViewById(R.id.etEmail); 
    sharedpreferences = getSharedPreferences(mypreference, 
      Context.MODE_PRIVATE); 

    if (sharedpreferences.contains(Name)) { 
     name.setText(sharedpreferences.getString(Name, "")); 
    } 
    if (sharedpreferences.contains(Email)) { 
     email.setText(sharedpreferences.getString(Email, "")); 

    } 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 
} 
0

ist hier einfach Login-Code wir

SharedPreferences.Editor editor = sp.edit(); 
editor.putString("User", c.getString(c.getColumnIndex("Name")).toString()); 
editor.commit(); 

vollständige Code

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    et1 = (EditText) findViewById(R.id.editText); 
    et2 = (EditText) findViewById(R.id.editText2); 
    btn = (Button) findViewById(R.id.button); 
    btn3 = (Button) findViewById(R.id.button3); 
    btn3 = (Button) findViewById(R.id.button3); 
    ct = (Button) findViewById(R.id.ct); 
    final SQLiteDatabase db = openOrCreateDatabase("DemoDb",MODE_ENABLE_WRITE_AHEAD_LOGGING,null); 
    ct.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      db.execSQL("create table login(LoginId varchar(10) primary key,Password varchar(10),Name varchar(10));"); 
     } 
    }); 
    sp = getSharedPreferences("myLogin", MODE_PRIVATE); 
    if(!sp.getBoolean("LogInMode",false)) { 
     btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if(et1.getText().toString().length()==0 || et2.getText().toString().length()==0){ 
        Toast.makeText(getBaseContext(), "User Not Found", Toast.LENGTH_SHORT).show(); 
       }else { 
        String data = "content://com.example.maity.dbdemo.123/DemoDb"; 
        Uri uri = Uri.parse(data); 
        ContentResolver resolver = getContentResolver(); 
        String[] ar = {"", ""}; 
        ar[0] = et1.getText().toString().trim(); 
        ar[1] = et2.getText().toString().trim(); 
        final Cursor c = resolver.query(uri, null, null, ar, null); 
        if (c.moveToNext()) { 
         if ((et1.getText().toString().trim().equals(c.getString(c.getColumnIndex("LoginId")).toString())) && 
           (et2.getText().toString().trim().equals(c.getString(c.getColumnIndex("Password")).toString()))) { 
          SharedPreferences.Editor editor = sp.edit(); 
          editor.putBoolean("LogInMode", true); 
          editor.putString("User", c.getString(c.getColumnIndex("Name")).toString()); 
          editor.commit(); 
          Intent intent = new Intent(MainActivity.this, WelcomePage.class); 
          startActivity(intent); 
          finish(); 
         } 
        }else { 
         Toast.makeText(getBaseContext(), "User Not Found", Toast.LENGTH_SHORT).show(); 
        } 
       } 
      } 
     }); 
    } 
    else{ 
     Intent intent = new Intent(MainActivity.this, WelcomePage.class); 
     startActivity(intent); 
     finish(); 
    } 
}