0
我有6个图像按钮,onclick它来回变化,但在第20个20位置重复。我很无能,但我确信它与getView f适配器有关。因此,我张贴适配器的代码。帮助将不胜感激。onClick图像按钮的值改变,但在10 20地方重复本身
public class ListAvailibilityAdapter extends BaseAdapter {
Context context;
int layoutResourceId;
protected List<UserAvailibilityModel> listAvailibility;
LayoutInflater inflater;
public ListAvailibilityAdapter(Context context, List<UserAvailibilityModel> listAvailibility) {
this.listAvailibility = listAvailibility;
this.inflater = LayoutInflater.from(context);
this.context = context;
}
public int getCount() {
if(listAvailibility.size()<=0)
return 1;
Log.d("SIZE OF ARRAY-->", String.valueOf(listAvailibility.size()));
return listAvailibility.size();
}
public UserAvailibilityModel getItem(int position) {
return listAvailibility.get(position);
}
/* public List<UserAvailibilityModel> getList(int position) {
return listAvailibility;
}*/
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return listAvailibility.get(position).getImageMorning();
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
View vi = convertView;
if (convertView == null) {
holder = new ViewHolder();
convertView = this.inflater.inflate(R.layout.layout_list_availability_item,parent, false);
holder.txtDate = (TextView) convertView.findViewById(R.id.lbl_date);
holder.txtDay = (TextView) convertView.findViewById(R.id.lbl_day);
holder.imgBtnMorning = (ImageButton) convertView.findViewById(R.id.img_btn_morning);
holder.imgBtnAfterNoon = (ImageButton) convertView.findViewById(R.id.img_btn_afernoon);
holder.imgBtnEvening = (ImageButton) convertView.findViewById(R.id.img_btn_evening);
holder.imgBtnMorningChecked = (ImageButton) convertView.findViewById(R.id.img_btn_morning_checked);
holder.imgBtnAfterNoonChecked = (ImageButton) convertView.findViewById(R.id.img_btn_afernoon_checked);
holder.imgBtnEveningChecked = (ImageButton) convertView.findViewById(R.id.img_btn_evening_checked);
holder.txtMorning = (TextView) convertView.findViewById(R.id.txtMorning);
holder.txtAfternoon = (TextView) convertView.findViewById(R.id.txtafernoon);
holder.txtEveing = (TextView) convertView.findViewById(R.id.txtEvening);
holder.imgBtnMorningChecked.setVisibility(View.GONE);
holder.imgBtnAfterNoonChecked.setVisibility(View.GONE);
holder.imgBtnEveningChecked.setVisibility(View.GONE);
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
if(listAvailibility.size()<=0)
{
holder.txtDate.setText("No Data");
holder.txtDay.setText("No Data");
}
else{
UserAvailibilityModel userAvailModel = listAvailibility.get(position);
holder.txtDate.setText(userAvailModel.getDisaplyDate());
holder.txtDay.setText(userAvailModel.getDisaplyDay());
holder.imgBtnMorning.setImageResource(userAvailModel.getImageMorning());
holder.imgBtnAfterNoon.setImageResource(userAvailModel.getImageAfterNoon());
holder.imgBtnEvening.setImageResource(userAvailModel.getImageEvening());
final ViewHolder fianlHolder = holder;
final int finalposition = position;
fianlHolder.imgBtnMorning.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View convertView) {
// if image source equals this drawable then...
// else change the image source to this drawable...
Toast.makeText(context,"Morning Btn Clicked"+finalposition,Toast.LENGTH_SHORT).show();
//if(((ImageButton)convertView).getDrawable()==drawableMorning){
fianlHolder.imgBtnMorningChecked.setVisibility(View.VISIBLE);
fianlHolder.imgBtnMorningChecked.setImageResource(R.drawable.check);
getItem(finalposition).setMornigBtnClick(true);
//}
}
});
fianlHolder.imgBtnMorningChecked.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View convertView) {
// if image source equals this drawable then...
// else change the image source to this drawable...
Toast.makeText(context,"Morning Btn Checked Clicked"+finalposition,Toast.LENGTH_SHORT).show();
//if(((ImageButton)convertView).getDrawable()==drawableCheck){
fianlHolder.imgBtnMorningChecked.setVisibility(View.GONE);
fianlHolder.imgBtnMorning.setVisibility(View.VISIBLE);
fianlHolder.imgBtnMorning.setImageResource(R.drawable.morning);
getItem(finalposition).setMornigBtnCheckClick(true);
// }
}
});
fianlHolder.imgBtnAfterNoon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View convertView) {
// if image source equals this drawable then...
// else change the image source to this drawable...
Toast.makeText(context,"AfterNoon Image Clicked"+finalposition,Toast.LENGTH_SHORT).show();
//if(convertView.getId()==R.id.img_btn_afernoon){
fianlHolder.imgBtnAfterNoonChecked.setVisibility(View.VISIBLE);
//fianlHolder.imgBtnAfterNoon.setVisibility(View.GONE);
fianlHolder.imgBtnAfterNoonChecked.setImageResource(R.drawable.check);
// }
}
});
fianlHolder.imgBtnAfterNoonChecked.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View convertView) {
// if image source equals this drawable then...
// else change the image source to this drawable...
Toast.makeText(context,"AfterNoon Btn Checked Clicked"+finalposition,Toast.LENGTH_SHORT).show();
//if(convertView.getId()==R.id.img_btn_afernoon_checked){
fianlHolder.imgBtnAfterNoonChecked.setVisibility(View.GONE);
fianlHolder.imgBtnAfterNoon.setVisibility(View.VISIBLE);
fianlHolder.imgBtnAfterNoon.setImageResource(R.drawable.afternoon);
// }
}
});
fianlHolder.imgBtnEvening.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View convertView) {
// if image source equals this drawable then...
// else change the image source to this drawable...
Toast.makeText(context,"Evening Image Clicked"+finalposition,Toast.LENGTH_SHORT).show();
//if(convertView.getId()==R.id.img_btn_evening){
fianlHolder.imgBtnEveningChecked.setVisibility(View.VISIBLE);
// fianlHolder.imgBtnEvening.setVisibility(View.GONE);
fianlHolder.imgBtnEveningChecked.setImageResource(R.drawable.check);
// }
}
});
fianlHolder.imgBtnEveningChecked.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View convertView) {
// if image source equals this drawable then...
// else change the image source to this drawable...
Toast.makeText(context,"Eveing Btn Checked Clicked"+finalposition,Toast.LENGTH_SHORT).show();
// if(convertView.getId()==R.id.img_btn_evening_checked){
fianlHolder.imgBtnEveningChecked.setVisibility(View.GONE);
fianlHolder.imgBtnEvening.setVisibility(View.VISIBLE);
fianlHolder.imgBtnEvening.setImageResource(R.drawable.night);
// }
}
});
}
return convertView;
}
private static class ViewHolder {
TextView txtDate;
TextView txtDay;
ImageButton imgBtnMorning;
ImageButton imgBtnAfterNoon;
ImageButton imgBtnEvening;
ImageButton imgBtnMorningChecked;
ImageButton imgBtnAfterNoonChecked;
ImageButton imgBtnEveningChecked;
TextView txtMorning;
TextView txtAfternoon;
TextView txtEveing;
}
}
你有什么疑问?你的问题有点困惑。 – androidevil 2015-04-01 01:48:47