2013-07-01 59 views
1

我有一個實現OnTouchListener類的BaseAdapter。該onTouch方法是:使用ViewHolder的onTouch方法Android

@Override 
public boolean onTouch(View v, MotionEvent event) { 

    switch (event.getAction()) { 

    case MotionEvent.ACTION_DOWN: { 
     startY = event.getY(); 
     break; 
    } 

    case MotionEvent.ACTION_UP: { 
     float endY = event.getY(); 

     if (endY > startY) { 
      layoutComments.startAnimation(animDown); 
      layoutComments.setVisibility(View.GONE); 
     } 

    } 

    } 
    return true; 
} 

,所述layoutComments變量的問題被插入ViewHolder在getView方法declarated:

public View getView(int position, View convertView, ViewGroup parent) { 
    final ViewHolder holder; 
... 
... 

程序無法查看變量,有兩個編譯器錯誤。我如何從onTouch的變量v獲取ViewHolder?

回答

1

還不是一般的設計實踐,設置ViewHolder上來看,convertView.setTag(holder)標籤,所以每當你要通過視圖的引用可以檢索:(ViewHolder) view.getTag()

+0

實際上,我看到BaseAdapter沒有看到事件。有任何想法嗎? – hasmet