密码 - 字符串比较

时间:2017-03-10 21:24:18

标签: java android arrays

我的应用包含一个Activity,要求输入String密码才能启动第二个Activity。我使用EditText作为输入,使用Button进行验证。如果按下Button,应用程序应检查插入的密码(假设它是“ABC”)是否与数组中的密码匹配。如果没有,请将插入的密码设置为红色。

 public class Login extends AppCompatActivity{

    Button   mButton;
    EditText mEdit;
    String [] mArray;


  @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);

        mButton = (Button)findViewById(R.id.anmelden_button);
        mEdit   = (EditText)findViewById(R.id.password);

        mButton.setOnClickListener(
                new View.OnClickListener()
                {
                    public void onClick(View view)
                    {
                        Log.v("EditText", mEdit.getText().toString());
                    }
                });

        String [] mArray = getResources().getStringArray(R.array.password);

        if (mArray.equals(mEdit.getText().toString())){
            Intent intent = new Intent(this, secondactivity.class);
            startActivity(intent);

        }else{
            mEdit.setTextColor(Color.RED);
        }
    }
}

我的问题是,当我插入“ABC”并按下按钮时,根本没有任何事情发生。

2 个答案:

答案 0 :(得分:1)

您需要首先遍历所有密码,然后检查您是否找到了所需的密码。

你的onclick听众应该是这样的:

mButton.setOnClickListener(new View.OnClickListener()
{
    public void onClick(View view)
    {
        String [] mArray = getResources().getStringArray(R.array.password);

        // loop to check all passwords
        for (String s : mArray) {
            if (s.equals(mEdit.getText().toString())) {
                // found the password
                Intent intent = new Intent(this, secondactivity.class);
                startActivity(intent);
                return;
            }
        }

        mEdit.setTextColor(Color.RED);

    }
});

答案 1 :(得分:0)

将您的密码检查代码放在onClickListener

循环遍历数组的每个元素,并根据EditText中的值进行检查