Android 从GetView中的OnClick访问UI
我有一个用于gridview的自定义适配器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
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()?