如何检查TextView是否包含数组中的字符串?

时间:2017-10-15 15:09:42

标签: java android textview

所以,让我们说我有一个数组:

String Array[] = {"Dog goes woof", "Cat goes meow", "Cow goes moo", "Etc..."};

我连接了一个Button和一个TextView,这样当按下按钮时我可以说:

public void onClick(View v) {
     TextView.setText(Array[1]);
}

然后用#34来填充TextView; Cat喵喵"。但我现在想要按钮来决定什么应该根据已经存在的内容填充TextView。所以,让我们说我在TextView中显示了Array [0],因此它说" Dog goof woof"。然后,我想要一个能够识别出Array [0]的if-test,然后将它改为Array [2]。如果显示Array [2],则会将其更改为Array [1],依此类推。

我在如何设置if-test方面遇到了一些问题,以及我应该如何表达它以便它能够识别我在TextView中寻找的内容。我确实想要寻找数组[X]或数组[Y],而不是像#34;狗一样的字符串"。基本上说的是(警告:前面的糟糕的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])

1 个答案:

答案 0 :(得分:0)

我很容易理解你的要求,这就是你需要的:

    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]);
                }
            }
        }
    });

这将检查是否存在初始值,如果是,那么它将检查所选位置,如果位置小于最后一个项目,那么它将增加一个,如果最后一个项目被选中,它将减少一。 我已经测试了它并且它正在工作,但仍然可以随意询问。