我有一个实现OnTouchListener类的BaseAdapter。 onTouch方法是:
@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变量插入在getView方法中声明的ViewHolder中的问题:
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
...
...
程序无法查看变量,并且存在两个编译器错误。如何从onTouch的变量v中获取ViewHolder?
答案 0 :(得分:1)
通常的设计做法不是将ViewHolder设置为视图convertView.setTag(holder)
上的标记,因此只要您通过以下方式引用视图,就可以检索它:(ViewHolder) view.getTag()