2013-07-01 56 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