Android 从GetView中的OnClick访问UI

Android 从GetView中的OnClick访问UI,android,Android,我有一个用于gridview的自定义适配器 public class PDFAdapter extends BaseAdapter { ... public View getView(int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); LayoutInflater mInflater = (LayoutInf

我有一个用于gridview的自定义适配器

    public class PDFAdapter extends BaseAdapter {

    ...

    public View getView(int position, View convertView, ViewGroup parent) {

        int type = getItemViewType(position);
        LayoutInflater mInflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        if (convertView == null) {
            convertView = mInflater
                    .inflate(R.layout.custom_layout, null);

        }

        Button1 = (Button) convertView
                .findViewById(R.id.button1);
        Button2 = (Button) convertView
                .findViewById(R.id.button2);

        Button1 .setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Button2.setVisibility(View.INVISIBLE);
            }

        });
        Button2 .setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Button1.setVisibility(View.INVISIBLE);
            }

        });

        return convertView;
    }
...

}

我的问题是,我无法从View.INVISIBLE的onClick方法访问UI。单击两个按钮后,没有任何更改。我遗漏了什么?

视图被重用,因此这不会像您期望的那样工作。您必须创建一个列表来跟踪哪一行应该隐藏其按钮。换句话说,您必须更改为数据状态并调用notifyDataSetChanged()。设置setvisibility后,是否调用notifyDataSetChanged()?