我在按鈕上使用了一個非常類似的代碼片段setOnClickListener
,並且視圖已通過。無法訪問開關內部的視圖android
((Switch) convertView.findViewById(R.id.push_switch)).setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if(rowItem.getPush().equals("N")){
((Switch) convertView.findViewById(R.id.push_switch)).toggle();
rowItem.setPush("Y");
}
else if(rowItem.getPush().equals("Y")){
((Switch) convertView.findViewById(R.id.push_switch)).toggle();
rowItem.setPush("N");
}
}
});
在上面的代碼,查看有沒有通過,所以我怎麼能訪問它傳遞到哪裏改我已經把convertView
。
對這個問題不重要的一個側面查詢是爲什麼當這沒有發生在按鈕上時,第一行被轉換爲(Switch)。只是對那個感興趣!
謝謝:)
「...的觀點並沒有通過......通過」 - 'compoundButton'是交換機。 – 2014-11-20 16:25:19
我以前從未使用複合按鈕,所以我可能會誤解它是什麼。如果我有一個開關,我需要在它改變的狀態下激活一個回調。我會用我必須做的嗎?因爲我需要訪問這個父級內的開關嗎? – sark9012 2014-11-20 16:27:35
'CompoundButton'是'Switch'類的基類。在偵聽器方法中,將'compoundButton'強制轉換爲'Switch',而不是在'convertView'上嘗試'findViewById()'。這將是接收事件的'Switch'對象。 – 2014-11-20 16:30:44