java - 如何访问字符串数组以在 Activity 中进行用户名身份验证?

标签 java android arrays authentication

我想创建一个 android studio 登录页面,使用数组列表中存储的多个帐户。如何验证写入的用户名和密码与arraylist中存储的用户名和密码是否相同

这是我在 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>

这是我的 Activity 代码:

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

感谢您帮助我,希望有人有这方面的经验。谢谢..

最佳答案

检查数组中的每一对:

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

关于java - 如何访问字符串数组以在 Activity 中进行用户名身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56124769/

相关文章:

c - 为什么 C 函数不能返回数组?

java - "new"带比较器接口(interface)的关键字

java - 使用 collect 保留 Java 流中的顺序

java - 我应该在我的类图中包含属于 java API 一部分的类吗?

java - 无法加载 GLPK for Java 的动态链接库

android - 使用谷歌位置 API 在 android 中的 onMapReady 中获取当前位置

c++ - 如何比较两个数组c++

android - 调用notification.cancel后通知没有取消

android - SMP 与 Android 的集成

java - 匹配类数组