我在项目上打开了一个新项目,我有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");
}
}
});
答案 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]);
}
}
}
});