2016-08-07 6 views
-1

私のアプリケーションでは、ユーザーがアプリケーションを起動してログインしようとすると、アプリケーションはShared Set < User>が存在しない場合はすべてのユーザーの資格情報のリストにあるかどうかを確認しますそれはゼロからです....ここで私の質問は、このセットの共有存在を確認する方法です<ユーザー>?ログインデータを保存するSharedPreferences

+0

することにより、データを格納することができ、簡単なログインコードでこれは非常に広範な問題です。一般的に、SharedPrefsを使用してユーザーのリストを直接格納することはできません。カスタムラッパーによってこれを克服するいくつかのlibsがあります。あなたはそれらをチェックしたいかもしれません。 –

答えて

1

ここで、共有設定のための私のコードを見てください。このコードはあなたのログインデータを保存します。ここで

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

我々はエディタクラスのputString方法

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

完全なコード

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(); 
    } 
} 
関連する問題