如何检查TextView是否包含数组中的字符串?
问题描述:
所以,让我们说,我有一个数组:如何检查TextView是否包含数组中的字符串?
String Array[] = {"Dog goes woof", "Cat goes meow", "Cow goes moo", "Etc..."};
而且我有一个按钮,并连接一个TextView这样,当按下按钮,我可以说,例如:
public void onClick(View v) {
TextView.setText(Array[1]);
}
由它来用“猫去喵”填充TextView。但是我现在想让按钮决定什么应该根据已经存在的内容来填充TextView。假设我在TextView中显示了数组[0],因此它会显示“Dog goes woof”。然后,我想要一个能够识别Array [0]的if-test,然后将其更改为Array [2]。如果显示数组[2],则会将其更改为数组[1],依此类推。
我在如何设置这个if-test,以及如何使用它来识别我在TextView中查找的内容方面存在一些问题。我确实想要查找数组[X]或数组[Y],而不是像“狗去窝”这样的字符串本身。基本的东西,说(警告:未来seudo码差):
if TextView contains Array[X]
then TextView.setText(Array[Y])
else if TextView contains Array[Y]
then TextView.setText(Array[Z])
else TextView.setText(Array[X])
答
我很容易理解你的要求,这里就是你需要的东西:
final Button yourButton= findViewById(R.id.yourButtonID);
final String Array[] = {"Dog goes woof", "Cat goes meow", "Cow goes moo", "Etc..."};
final TextView yourTextView = findViewById(R.id.yourTextViewID);
yourButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int position = 0;
if(textView.getText() == null)
{
textView.setText(Array[1]); // initial value
}
else{
for(int i=0;i<Array.length;i++){
if(Objects.equals(textView.getText(),Array[i])){
position=i; //got the selected position
break;
}
}
if(position<Array.length-1){
textView.setText(Array[position+1]);
}
else{
textView.setText(Array[position-1]);
}
}
}
});
这将检查是否有初始值和如果是一个,那么它将检查选定的位置,如果位置小于最后一个项目,那么它将增加一个,如果最后一个项目被选择,它将递减一个。 我已经测试过它,它的工作,仍然可以随意问。
你也许不想在'onClickListener'中使用这么多的代码,那么你可以把这段代码放在一个方法中,并在'onClick'中调用这个方法。 –
非常感谢您的回答。虽然我不想要像您提交的增加的系统,但是您确实给我提供了我需要的答案,以便我需要对疑问进行短语查找,以查找TextView包含的内容。 Objects.equals()部分。我需要一个更手动的系统,但你的回答给了我需要的解决方案。非常感谢你:) – PQuix
@PQuix很高兴,它帮助,即使我不建议在'OnClick'中使用这么多的代码,这就是为什么我改用了一种方法。 –