2017-10-15 448 views
0

所以,讓我們說,我有一個數組:如何檢查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]) 

回答

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

這將檢查是否有初始值和如果是一個,那麼它將檢查選定的位置,如果位置小於最後一個項目,那麼它將增加一個,如果最後一個項目被選擇,它將遞減一個。 我已經測試過它,它的工作,仍然可以隨意問。

+0

你也許不想在'onClickListener'中使用這麼多的代碼,那麼你可以把這段代碼放在一個方法中,並在'onClick'中調用這個方法。 –

+0

非常感謝您的回答。雖然我不想要像您提交的增加的系統,但是您確實給我提供了我需要的答案,以便我需要對疑問進行短語查找,以查找TextView包含的內容。 Objects.equals()部分。我需要一個更手動的系統,但你的回答給了我需要的解決方案。非常感謝你:) – PQuix

+0

@PQuix很高興,它幫助,即使我不建議在'OnClick'中使用這麼多的代碼,這就是爲什麼我改用了一種方法。 –

相關問題