首页 > 解决方案 > 如何必须根据彼此排列列表

问题描述

我正在尝试创建一个登录表单,您可以在其中从微调器中选择一个项目,然后您需要在文本字段中输入正确的代码才能继续。这就是我得到的。

Spinner schoolList = findViewById(R.id.schoolList);

    ArrayAdapter<String> schoolListAdapter = new ArrayAdapter<String>(CreateAccount.this, android.R.layout.simple_spinner_dropdown_item, schools);

    schoolList.setAdapter(schoolListAdapter);
private String[] schools = new String[]{
        "School 1",
        "School 2,
        "School 3"
};


private String[] schoolCodeArray = new String[] {
        "password1",
        "password2",
        "password3"
};

我知道你可以检查一下 School 1 = password1 等等,但这个列表会很长,因此我正在寻找更好的方法。例如获取所选学校的索引并检查该索引是否等于 schoolCodeArray 中的索引并与文本字段中的内容匹配。我希望你明白我在找什么。我感谢所有帮助!

标签: javaandroidindexingspinner

解决方案


如果您应该有两个微调器,一个用于学校,另一个用于密码,那么考虑项目的顺序也可能不同。让你的逻辑灵活。考虑以上创建一个HashMap将学校视为密钥和密码作为值的地方。

HashMap<String, String> credentialMap = new HashMap<String, String>();
credentialMap.put("School 1","Password 1")
credentialMap.put("School 2","Password 2")

一旦用户从两个微调器中选择项目,然后在某些按钮操作上,您需要对其进行验证。要做到这一点

    loginButton.setOnClickListener(new View.OnClickListener(){
         public void onClick(View v){
            if(credentialMap.containsKey(schoolSpinnerItem)){
              if(credentialMap.get(schoolSpinnerItem).equals(passwordSpinnerItem)){
                // Login success
              }
              else{
                 // Login failed
              }
            }
         }
     });

推荐阅读