Как получить доступ к String-массиву для аутентификации имени пользователя в действии? - PullRequest
0 голосов
/ 14 мая 2019

Я хочу создать страницу входа в Android Studio, используя более одной учетной записи, сохраненной в списке массивов. как проверить, что имя пользователя и пароль совпадают с именем пользователя и паролем, хранящимися в массиве

Вот мой список массивов в res:

<string-array name="user">
    <item>admin</item>
    <item>jhon</item>
</string-array>

<string-array name="pass">
    <item>admin</item>
    <item>littlejhon</item>
</string-array>

вот мой код активности:

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.CardView;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;    
import java.util.HashMap;
import java.util.Objects;

public class PassActivity extends AppCompatActivity {
    EditText username;
    EditText password;
    CardView card;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pass);

        final String[] use = getResources().getStringArray(R.array.user);
        final String[] pas = getResources().getStringArray(R.array.pass);

        username = findViewById(R.id.username);
        password = findViewById(R.id.password);
        card     = findViewById(R.id.card);

        card.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (Objects.equals(username.getText().toString(), use)
                    &&
                    Objects.equals(password.getText().toString(),pas))
                {
                    Toast.makeText(
                        PassActivity.this,
                        "You have Authenticated Successfully",
                        Toast.LENGTH_LONG)
                    .show();
                }
                else {
                    Toast.makeText(
                        PassActivity.this,
                        "Authentication Failed",
                        Toast.LENGTH_LONG)
                    .show();
                }
            }
        });
    }
}

спасибо за помощь, надеюсь, у кого-то есть опыт в этом. Спасибо ..

Ответы [ 3 ]

2 голосов
/ 14 мая 2019

Проверка для каждой пары в массивах:

 public void onClick(View view) {
    boolean found = false;
    String myUsername = username.getText().toString();
    String myPassword = password.getText().toString();

    for (int i = 0; i < use.length; i++) {
      if (use[i].equals(myUsername) && pas[i].equals(myPassword)) {
             Toast.makeText(PassActivity.this,"You have Authenticated Successfully",Toast.LENGTH_LONG).show();
           found = true;
           break;
      }
     }

     if (!found) {
          Toast.makeText(PassActivity.this,"Authentication Failed",Toast.LENGTH_LONG).show();
      }
  }
0 голосов
/ 14 мая 2019

попробуйте ниже код,

 public void onClick(View view) {

  final String[] UserArray= getResources().getStringArray(R.array.user);
  final String[] passArray= getResources().getStringArray(R.array.pas);

  String Username = username.getText().toString();
  String Password = password.getText().toString();

  if (Arrays.asList(UserArray).contains(Username) && Arrays.asList(passArray).contains(Password )) {
    // authenticate successfully
  }else{
     // authentication failed
   }

}
0 голосов
/ 14 мая 2019

Попробуйте это:

String[] usernames = getStringArray(R.array.usernames);
EditText editText = (EditText)findViewById(R.id.edittext);
String candidate = editText.getText().toString();
boolean submit_authenticate = isAuthenticated(candidate, usernames);

if(submit_authenticate){
    Toast.makeText(PassActivity.this,"You have Authenticated Successfully",Toast.LENGTH_LONG).show();
}else{
    Toast.makeText(PassActivity.this,"Authentication Failed",Toast.LENGTH_LONG).show();
}

public boolean isAuthenticated(String candidate, String[] usernames) {
   for(String username : usernames) {
      if(candidate.equals(username)) {
        return true;
      } 
   }
   return false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...