0
我有一个列表,当用户点击该列表中的一个项目时,该项目下会显示三个按钮(即是,否和可能),因此用户可以选择任何一个按钮和响应(如1,2,3的是,不,也许)将saved.In适配器的getView只是我们检索响应并显示ImageView的所有列表项的行滚动时列表中某个项目的ImageView
在ArrayAdapter的getView
设置图像EventUserRelationMO eventUserRelationMO1 =new EventUserRelationMO();
eventId1 = eventUserRelationMO1.getEventId();
if (eventId1 == eventIdPosition) {
long eventUserId = eventUserRelationMO1.getEventUserId();
int isAttending = eventUserRelationMO1.getIsAttending();
if (isAttending == 1) {
holder.no.setVisibility(View.GONE);
holder.maybe.setVisibility(View.GONE);
} else if (isAttending == 2) {
holder.yes.setVisibility(View.GONE);
holder.maybe.setVisibility(View.GONE);
} else if (isAttending == 3) {
holder.yes.setVisibility(View.GONE);
holder.no.setVisibility(View.GONE);
} else {
holder.yes.setVisibility(View.GONE);
holder.no.setVisibility(View.GONE);
holder.maybe.setVisibility(View.GONE);
}
}
这是完美的作品,但当我有更多数量的项目列表中的图像是不可见的相应的项目/洗牌时滚动
private class UserOccasions extends ArrayAdapter<EventMO> {
private ArrayList<EventMO> eventMOs;
LayoutInflater mInflater;
UserOccasions(Context context, int textViewResourceId,
ArrayList<EventMO> eventMOs) {
super(context, textViewResourceId, eventMOs);
this.eventMOs = new ArrayList<EventMO>();
this.eventMOs.addAll(eventMOs);
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public class ViewHolder {
TextView eventNameTxtV;
TextView eventPlaceTxtV;
TextView sendByNameTxtv;
ImageView yes;
ImageView no;
ImageView maybe;
}
@Override
public int getCount() {
return eventMOs.size();
}
/*@Override
public Object getItem(int position) {
return position;
}*/
@Override
public long getItemId(int position) {
return 0;
}
// show list values name and mobile number in contact page
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
final EventMO eventMO = eventMOs.get(position);
if (null == convertView) {
convertView = mInflater.inflate(R.layout.invitation, null);
holder = new ViewHolder();
holder.eventNameTxtV = (TextView) convertView.findViewById(R.id.invitationTitle);
holder.eventPlaceTxtV = (TextView) convertView.findViewById(R.id.invitationCheckBox);
holder.sendByNameTxtv = (TextView) convertView.findViewById(R.id.sendByName);
holder.yes = (ImageView) convertView.findViewById(R.id.yes);
holder.no = (ImageView) convertView.findViewById(R.id.no);
holder.maybe = (ImageView) convertView.findViewById(R.id.maybe);
eventUserRelationMOs = eventMO.getEventUserRelationBOs();
sendUserMO = eventMO.getUserBO();
eventIdPosition = eventMO.getEventId();
for (EventUserRelationMO eventUserRelationMO1 : eventUserRelationMOs) {
eventId1 = eventUserRelationMO1.getEventId();
if (eventId1 == eventIdPosition) {
long eventUserId = eventUserRelationMO1.getEventUserId();
int isAttending = eventUserRelationMO1.getIsAttending();
if (isAttending == 1) {
holder.no.setVisibility(View.GONE);
holder.maybe.setVisibility(View.GONE);
} else if (isAttending == 2) {
holder.yes.setVisibility(View.GONE);
holder.maybe.setVisibility(View.GONE);
} else if (isAttending == 3) {
holder.yes.setVisibility(View.GONE);
holder.no.setVisibility(View.GONE);
} else {
holder.yes.setVisibility(View.GONE);
holder.no.setVisibility(View.GONE);
holder.maybe.setVisibility(View.GONE);
}
}
}
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.yes.setTag(eventMOs.get(position));
holder.no.setTag(eventMOs.get(position));
holder.maybe.setTag(eventMOs.get(position));
holder.eventNameTxtV.setText(eventMOs.get(position).getText());
holder.eventPlaceTxtV.setText(eventMOs.get(position).getPlace());
holder.sendByNameTxtv.setText(sendUserMO.getUserName());
View v = convertView.findViewById(R.id.invitation_single);
v.getRootView().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent occasionAct = new Intent(InvitationFragment.this.getActivity(), InvitationActivity.class);
occasionAct.putExtra("eventMO", eventMO);
occasionAct.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(occasionAct);
}
});
return convertView;
}
这是我的全部适配器代码的任何一个可以帮助我保持对列表中的每个项目对应的ImageView滚动
谢谢你的回应,我已经试过你的代码,但是当我的第一个项目设置图标它设置图标2项 - 首先一个和第七one。图标也滚动@滚动@ Anirudh R Kashyap –