2016-06-20 20 views
2

TextViewタイプのリスト "allPay"があります。私は、このリストの文字列 "abc"を見つける必要があります。私は "contains()"を使ってこのリストから文字列を見つけましたが、リストにこの文字列が含まれていても、私は常に答えとして "false"を返します。ここでリスト内の文字列の検索方法<TextView> android

はコードです:

TextView tv_method_name = (TextView) findViewById(R.id.tv_method_name); 
tv_method_name.setText("abc"); 
tv_method_name.setText("abcde"); 

List<TextView> allPay = new ArrayList<TextView>(); 

allpay.add(tv_method_name); 
String str = "abc"; 
System.out.println("====allpay contains string?:" +  
allPay.contains("abc")); 

結果:ので

allPay.contains("abc")); 

==== allpayは、あなたがこれを行うことができない文字列?:偽

+0

あなたはをループするためにヘルパー関数を作成し、値 – Shubhank

答えて

1

を使用して検索することができます求めていますforループを使用してTextviewsのリストを反復するか、テキストをチェックするために各ループに対して繰り返します。ただ、この方法を使用します。次に

boolean listContains(List<TextView> txtViews, String textToCheck) { 
    for (TextView txtView : txtViews) { 
     if (txtView.getText().toString.contains(textToCheck)) { 
      return true; 
     } 
    } 
    return false; 
} 

だけ使用します。

if (listContains(allPay, "abc")) { 
    //"abc" is contained within one of the lists, do something 
} 
+1

答えをありがとう。私の問題を解決しました:) –

+0

問題はありません。それが助けてくれてうれしい。 – 26hmkk

0

が含まれていますメソッドにはオブジェクトを検索していますが、オブジェクトの内容は含まれていません...

あなたはTextViewsのリストが...文字列が含まれており、

正しくない場合は、それがループ上のリストを反復し、あなたが持っているString#indexOf()方法

List<String> allPay = new ArrayList<String>(); 

allpay.add(tv_method_name); 
allpay.add(tv_method_name); 
allpay.add(tv_method_name); 
allpay.add(tv_method_name); 
allpay.add(tv_method_name); 
for (TextView tv : allPay) { 
    if (tv.getText.toString().indexOf("abc")!=-1) { 
     System.out.println("Found!!"); 
    } 
} 
+0

'のindexOfは、任意の* abcのを==を見つける必要がありますので、オブジェクトのアドレスの代わりに、オブジェクト値の作業に含まれています* '、' indexof'を使ってメソッド自体を含みます。See String class。 – Hosseini

0

私は問題はこの部分であると思います。

TextView tv_method_name = (TextView) findViewById(R.id.tv_method_name); 
tv_method_name.setText("abc"); 
tv_method_name.setText("abcde"); 

tv_method_nameはあなたが値「ABC」のためのリストを見ている変数の最後の値が「ABCDE」であるこのような理由のために、二回に変更され、メソッドが戻り「が含まれている」「偽」このオブジェクトが存在しないためです。

0

TextViewオブジェクトのリストがあり、文字列を検索しています。それは動作しません。

は、以下のことを試してみてください。

String yourText = "abc"; 
for(TextView tv: allPlay){ 
    if(tv!=null && tv.getText()!=null && tv.getText().toString().contains(yourText)){ 
     Log.d(TAG,"found:" + true); 
    } 
} 
関連する問題