私はArrayList.Indexof("Value")
自分のアプリケーションの1つで使用しています。ArrayList
400以上の値が含まれており、このリストを使用してスピナーに表示しています。Indexof
そのアイテムが必要な特定の位置にスピナーを移動したい。Spinner を使用していますsetSelection
が、ここでArrayList.Indexof("Value")
は -1 が返されます...なぜですか? 私を助けてください..
1276 次
3 に答える
6
javadocを参照してください。
そのようなインデックスがない場合は -1 を返します
于 2012-06-19T09:26:37.127 に答える
1
-1 が返されるという事実は、インデックス「値」が ArrayList に存在しないことを示しています。比較するために、equals()
使用されます。失敗する可能性がある 2 つのポイント:
- 大文字と小文字を含むスペル ("value".equals("Value") -> false)
- ArrayList には文字列は含まれていませんが、それ以外のものが含まれているため、別の実装を使用する可能性があります
String#equals(String)
より多くの情報を提供できるようにしたい場合は、いくつかのコードが必要です...
于 2012-06-19T09:32:09.757 に答える
0
SpinnerのsetSelectionを使用していますが、ここではArrayList.Indexof( "Value")が-1を返します。
これは、文字列が実際にはリストにないことを示しています。限目。
では、実際に何が起こっているのでしょうか。
@brimboriumは、いくつかの可能性を特定しました。
- リスト内の値とテストしている値は、大文字と小文字が異なる場合があります
- リスト内の値またはテストしている値が文字列ではありません
そして他のいくつかは:
- いずれかの値に、表示されない先頭または末尾の空白があります
- 特定のUnicodeコードポイント(文字)は、レンダリングすると同じように見えますが、異なっており、異なるものとして比較されます
または...コードが値を追加しなかったか、値を削除しました。
于 2012-06-19T10:50:09.923 に答える