1

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;
}

getView メソッドで宣言された ViewHolder に layoutComments 変数が挿入されるという問題:

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

プログラムは変数を表示できず、2 つのコンパイラ エラーがあります。onTouch の変数 v から ViewHolder を取得するにはどうすればよいですか?

4

1 に答える 1

1

ViewHolder をビューのタグとして設定するのは一般的な設計手法ではないため、次の方法convertView.setTag(holder)でビューへの参照がある場合はいつでも取得できます。(ViewHolder) view.getTag()

于 2013-07-01T14:18:45.333 に答える