2014-09-25 37 views
0

我沒有得到正確的索引。誰能告訴我爲什麼?我期望0作爲索引,而不是-1。int數組中的元素未找到(雖然它應該)

int[] id = {R.id.buKeyPadNum1, ...} **(EDIT)** 
int index = Arrays.asList(id).indexOf(v.getId()); 

Log.i("onClick", "v.getId "+ String.valueOf(v.getId())+" ButtonId "+String.valueOf(id[0]) 
+" Index "+String.valueOf(index)); 

logcat的: 8月9日至二十五日:11:32.039:I /的onClick(1680):v.getId 2131296337 ButtonId 2131296337索引-1

+0

索引'-1'表示它不存在。 'v.getId()'的值在你的數組中不存在 – Baby 2014-09-25 08:26:43

+0

'id.equals(v.getId())'似乎更有意義 – epoch 2014-09-25 08:28:01

+0

-1意味着它是空的並且它不存在。 – 2014-09-25 08:29:34

回答

1

Arrays.asList(id)返回List<long[]>indexOf()僅適用於Long[]對象。見this answer

嘗試使用Long[]類型爲id

+1

是「int [] id = {R.id.buKeyPadNum1,...}」必須是「Integer [] id = {}」 – user2462619 2014-09-25 08:49:59

1

考慮這樣的代碼:

int ix = Arrays.asList(new int[]{1,2}).indexOf(1); 
// result: -1 

int ix = Arrays.asList(new Integer[]{1,2}).indexOf(1); 
// result: 0 (found) 

可能你的數組包含了與indexOf參數不同類型的元素。

相關問題