android搜索这些字符串,如果找到然后给消息

时间:2016-03-22 01:02:58

标签: android

我在项目上打开了一个新项目,我有1个textview和一个按钮

我想搜索下面的任何字符串,如果找到则显示消息

发现了 找不到

6A
6B
6C
6D
7A
7B
7C
7D
8A
8B
8C
8D
9A
9B
9C
9D
0A
0B
0C
0D

所以人们将从上面输入2个代码,如果textview与代码匹配,则给出found。

例如

 Button clickButton = (Button) findViewById(R.id.button);
        clickButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                EditText tvId = (EditText) findViewById(R.id.editText);
                TextView tvIdd = (TextView) findViewById(R.id.textView2);
                // TODO Auto-generated method stub
                if (tvId.equals("6A")){
                    tvIdd.setText("6a is nor");
                } else   if (tvId.equals("6B")){
                    tvIdd.setText("6b is nor");
                } else   if (tvId.equals("6C")){
                    tvIdd.setText("6c is nor");
                } else   if (tvId.equals("6D")){
                    tvIdd.setText("6d is nor");
                }
            }
        });

5 个答案:

答案 0 :(得分:0)

您可以查看列表并检查第一个字符,如果第一个数字是命中,请检查第二个字符。如果那是成功的话,

而不是“6B”中的硬编码,只需从文件中取出字符串并比较

for(...;...;...)

在这里很有用

答案 1 :(得分:0)

查看字符串是否与一组字符串匹配的最简单方法是定义一个Set,然后使用contains API:

private static final Set<String> mValues;
static {
    mValues = new HashSet<>();
    mValues.add("6A");
    mValues.add("6B");
    // add others
}

Button clickButton = (Button) findViewById(R.id.button);
clickButton.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        EditText tvId = (EditText) findViewById(R.id.editText);
        TextView tvIdd = (TextView) findViewById(R.id.textView2);
        String value = tvId.getText().toString();
        if (mValues.contains(value)) {
            // your edit text contains one of the strings, do your stuff here
        }
    }
});

答案 2 :(得分:0)

第1步

在Android中创建和使用静态字符串数组很容易。您可以在Java代码中执行此操作,但对于Android,通过XML执行此操作会更容易。

这是在Android XML文件中定义静态字符串数组的方法:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="myStrings">
        <item>6A</item>
        <item>6B</item>
        <item>6C</item>
        <item>6D</item>
    </string-array>
</resources>

然后你可以在java代码中获取它

Resources res = getResources();
String[] myArray = res.getStringArray(R.array.myStrings);
if (Arrays.asList(myArray).contains(yourInputFromTextView)) {
    // true
}

第2步

如果您的字符串始终遵循模式

,这是最简单的方法
public boolean isInputCorrect(String s){
    String pattern= "^[67890][ABCD]$";
        if(s.matches(pattern)){
            return true;
        }
        return false;   
}

答案 3 :(得分:0)

将字符串6A,6B ...放入哈希表中,并将其与EditText小部件中的文本进行比较,这可以避免数十个if-else分支。

示例:

IN ( subquery )

答案 4 :(得分:0)

    final String[] test={"6A","6B","6C"};
    final EditText tvId = (EditText) findViewById(R.id.editText);
    final TextView tvIdd = (TextView) findViewById(R.id.textView2);
    Button clickButton = (Button) findViewById(R.id.button);
    clickButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            for(int i=0;i<test.length;i++){
                if(test[i].equals(tvId.getText().toString())){
                    tvIdd.setText(test[i]);
                }
            }
        }
    });