我做了類似的事情之前,我用計數值。使用父適配器對象不完整,因爲刷新視圖或再次調用getView()
時可能會出現問題。
因此,我建議使用數組計數器。
首先,在全局範圍內定義適配器數組。
private int isInitializedView[];
然後在getView()上初始化它。
isInitializedView[position] = 0;
在選擇偵聽器中,如果它已經初始化,就做一些你想要的東西。
holder.mySpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
isInitializedView[position]++;
if(isInitializedView[position] > 1) {
// do someting that you want
}
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {}
});
(請注意,isInitializedView[position]++;
後可if()
程序中來,只有觸發事件時,這個值是>0
。這是你的選擇。)
如果用戶按動的第一個項目的上面的代碼沒有效果。 – matheuslf 2013-07-12 19:59:56
我正面臨同樣的問題 – theLazyFinder 2016-07-20 10:24:56