我已经搜索过这个问题了,我无法在任何地方找到它,而且我甚至不确定如何确切地说出来。
我有一个列表视图,包含每个项目的图像,文本,按钮等。我还有一个项目的edittext,但我只想让edittext对当前用户可见。同样的方式,你只能在Facebook上编辑自己的帖子,而不是每隔一个帖子。
这是我尝试过的:
holder.editcaption = (EditText) itemView.findViewById(R.id.editText1);
(...)
if(mCurrentUser.getUsername()!=currentItem.getSender())
holder.editcaption.setVisibility(View.INVISIBLE);
这是在适配器的getView()中。问题是当我只需要每个edittext时,所有的edittex都变得不可见或可见,除了当前用户不可见。我只需要更改当前项的edittext视图。
非常感谢任何帮助。
private class MyListAdapter extends ArrayAdapter<GalleryItem>{
public MyListAdapter(){
super(getActivity(), R.layout.item_view, thelist);
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
if(items.get(position).getUsername()!=mCurrentUser.getUsername())
return 2;
else return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
currentItem = adapter.getItem(position);
int type = getItemViewType(position);
ViewHolder holder;
View itemView = null;
if(convertView == null){
LayoutInflater inflater = (LayoutInflater) getListView().getContext().getSystemService( Context.LAYOUT_INFLATER_SERVICE );
if(type==0)
itemView = inflater.inflate(R.layout.item_view, parent, false);
else
itemView = inflater.inflate(R.layout.currentuser_item_view, parent, false);
holder = new ViewHolder();
holder.image = (ImageView)itemView.findViewById(R.id.imgAvatar);
holder.text = (TextView) itemView.findViewById(R.id.newtext);
holder.profilepicture = (ProfilePictureView) itemView.findViewById(R.id.profilePicture);
holder.timelabel = (TextView) itemView.findViewById(R.id.timeposted);
holder.post_caption = (TextView) itemView.findViewById(R.id.caption);
holder.editcaption = (EditText) itemView.findViewById(R.id.editText1);
itemView.setTag(holder);
}
else{
itemView = convertView;
holder = (ViewHolder) itemView.getTag();
}