1. 程式人生 > >android 中View.setID,與getID

android 中View.setID,與getID

private Map<String, TextView> mapBt = new HashMap<String, TextView>();

bt.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

for (String k : mapBt.keySet()) {

if (v.getId() == mapBt.get(k).getId()) {

columnSign

= Integer.parseInt(k);

}

}

。在監聽事件中想用ID來找到MAP中對應view的時候發現getid取的值永遠是-1.

研究了下發現這裡的getID一般是指的取你佈局中設定的ID。如果 是程式碼中直接NEW出來的控制元件,他的geiid取的值是預設的-1.並非是記憶體中得id=345134512132之類的那個值。

所以當代碼中new得控制元件後面需要通過getid來判斷是否為某個控制元件的時候需要在new的時候給他利用setid()方法設定id。