2016-03-31 16 views
0

私はアンドロイドの共有設定に取り組んでいます。 私はシングルユーザログインページを作っており、ログインの詳細は正しく保存されています。 ログインページコードが複数のログインはandroidのsharedpreferenceを使用しています

`public class Login extends AppCompatActivity { 
    private static final int register = Menu.FIRST; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.login); 

     String pref = "mypref"; 

     SharedPreferences sharedPreferences = getSharedPreferences(pref, MODE_PRIVATE); 
     final SharedPreferences.Editor editor = sharedPreferences.edit(); 

     Button loginbtn = (Button) findViewById(R.id.login); 
     final EditText editText3 = (EditText) findViewById(R.id.editText3); 
     final EditText editText4 = (EditText) findViewById(R.id.editText4); 

     editText3.setText(sharedPreferences.getString("name","")); 
     editText4.setText(sharedPreferences.getString("password", "")); 

     loginbtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent lg = new Intent(Login.this, Main.class); 
       startActivity(lg); 
      } 
     }); 
    } 



    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     menu.add(0, register, 0, "Register"); 
     return true; 
    } 



    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 



     switch (item.getItemId()) { 
      case register: 

       Intent lg = new Intent(Login.this, Register.class); 
       startActivity(lg); 

       return true; 
      case R.id.register: 


       return true; 

      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 

}` 

今私は、ログインページ上の共有の好みを介して複数のユーザーを保存したいです。誰かがいくつかのコードを提案できますか?

答えて

0

SharedPreferenceに(サインアップ中に)保存するときに、ユーザーが入力したユーザー名をキーとして使用し、パスワードを値として入力します。ログインしている間に、ユーザ名&のパスワードを取得し、そのようなエントリが優先的に存在するかどうかを確認します。

あなたは私が意味していたことを願っています。あなたは明確

EDIT必要があるなら、私を知ってみましょう:あなたはユーザ名とパスワードを格納している場合

を資格情報が正しいかどうかを確認するためにログインする場合

次の操作を行い、以下の

sharedPref.put(username, pwd); //username & pwd are user entered 
           //values during sign up 

を行います

if(pwd.equals(sharedPref.get(username)) return true; 
else return false; 
+0

OK ...も – Manpreet

+0

@Manpreetをいくつかのコードを示唆していくつかのコードスニペットで – pvn

0

まず、次のようにJSON構造を作成します。

{ 
"users":[ 
{ 
"name":"name1" 
,"password":"pass1" 
} 
{ 
"name":"name2" 
,"password":"pass2" 
} 
] 
} 

そしてあなたは、この構造体にデータを埋めることができます。

JSONArray mArrayUser = new JSONArray(); 
JSONObject user = new JSONObject(); 
user.put("name", "name1"); 
user.put("passwords", "pass1"); 

mArrayUser.put(user); 

user = new JSONObject(); 
user.put("name", "name2"); 
user.put("passwords", "pass2"); 

mArrayUser.put(user); 


JSONObject jObject = new JSONObject(); 
jObject.put("users",myArray); 

今、あなたは文字列で、このJSONObjectを変換し、sharedpreferencesに保存することができます:

String sharedPrefData = jObject.toString(); 

editor.putString("YOUR_DB", sharedPrefData); 

、あなたのデータを必要としますsharedpreferencesから取得してJSONObjectで変換できます。

JSONObject jObj = new JSONObject(sharedPreferences.getString("YOUR_DB","")); 

非常にJSONArrayを通じて行:

JSONArray jArray= jObj.getJSONArray("users"); 


    for(int i=0;i<jArray.length();i++){ 

     String name = jArray.getJSONObject(i).getString("name"); 
     String password = jArray.getJSONObject(i).getString("password"); 
     //DO WHAT YOU WANT WITH THE DATA 

    } 
+0

OK thnksをedittedている...それは便利です – Manpreet

関連する問題