将字符串数组内容与EditText内容进行比较

时间:2011-05-17 23:44:48

标签: android xml string

基本上我有一个文本框和一个如下所示的edittext框:

用户名[]

然后在底部有一个名为“提交”的按钮。

简单来说,我必须输入一个用户名,将它与我在strings.xml文件中的字符串数组进行比较,如果它不等于数组中的任何字符串,那么我很高兴去。

字符串数组如下所示:

&LT; string-array name="usernames"> <项&GT;布赖恩     &LT; item>John</item> <项&GT;太      &LT; item>Mike</item> < /串阵列&GT;

我很困惑如何在伪代码中执行简单的if语句:

if(username_entered_in_editText == usernameArray [contents]) {submit_check = true; }

非常感谢任何建议!

1 个答案:

答案 0 :(得分:0)

尝试这样的事情。获取String []的实例,使用getText()。toString()从EditText获取文本,并比较列表中的每个名称。当然,这不是优化的。如果您的String数组已排序,您可以实现二进制搜索以使其更快,但这里的一般理论将起作用。

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

public boolean usernameTaken(String candidate, String[] usernames) {
    for(String username : usernames) {
        if(candidate.equals(username)) {
            return true;
        } 
    }
    return false;
}