如何检查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]); 
       } 
      } 
     } 
    }); 

这将检查是否有初始值和如果是一个,那么它将检查选定的位置,如果位置小于最后一个项目,那么它将增加一个,如果最后一个项目被选择,它将递减一个。 我已经测试过它,它的工作,仍然可以随意问。

+0

你也许不想在'onClickListener'中使用这么多的代码,那么你可以把这段代码放在一个方法中,并在'onClick'中调用这个方法。 –

+0

非常感谢您的回答。虽然我不想要像您提交的增加的系统,但是您确实给我提供了我需要的答案,以便我需要对疑问进行短语查找,以查找TextView包含的内容。 Objects.equals()部分。我需要一个更手动的系统,但你的回答给了我需要的解决方案。非常感谢你:) – PQuix

+0

@PQuix很高兴,它帮助,即使我不建议在'OnClick'中使用这么多的代码,这就是为什么我改用了一种方法。 –