public class MaxListViewAdapter extends BaseAdapter {
private List list;
private List namelist;
private SpinnerPopupWindow spw;
private MaxListViewBean maxListViewBean;
private LayoutInflater inflater;
public MaxListViewAdapter(Context context, List<MaxListViewBean> list, List<String> namelist) {
this.list = list;
this.namelist = namelist;
inflater = LayoutInflater.from(context);
spw = new SpinnerPopupWindow(context, namelist, getOnItemClickListener());
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(final int i, View view, ViewGroup viewGroup) {
ViewHolder viewHolder;
maxListViewBean = list.get(i);
if (view == null) {
viewHolder = new ViewHolder();
view = inflater.inflate(R.layout.new_maxlistview_item, null);
viewHolder.iv_showaction = (ImageView) view.findViewById(R.id.nm_iv_showaction);
viewHolder.tv_delet = (TextView) view.findViewById(R.id.nm_tv_delet);
viewHolder.tv_interfacetype = (TextView) view.findViewById(R.id.nm_tv_interfaceType);
viewHolder.tv_showtime = (TextView) view.findViewById(R.id.nm_tv_showtime);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) view.getTag();
}
initdata(i, viewHolder);
return view;
}
private void initdata(final int i, final ViewHolder viewHolder) {
viewHolder.tv_showtime.setText(maxListViewBean.getShowSs());
viewHolder.tv_interfacetype.setText(maxListViewBean.getInterfaceName());
viewHolder.tv_delet.setOnClickListener(getOnClickListener(viewHolder, i));
viewHolder.iv_showaction.setOnClickListener(getOnClickListener(viewHolder, i));
}
@NonNull
private View.OnClickListener getOnClickListener(final ViewHolder viewHolder, final int i) {
return new View.OnClickListener() {
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.nm_tv_delet:
list.remove(i);
notifyDataSetChanged();
break;
case R.id.nm_iv_showaction:
spw.setWidth(viewHolder.tv_interfacetype.getWidth());
spw.showAsDropDown(viewHolder.tv_interfacetype);
break;
}
}
};
}
@NonNull
private AdapterView.OnItemClickListener getOnItemClickListener() {
return new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String interfaceName = namelist.get(i).toString();
maxListViewBean.setInterfaceName(interfaceName);
spw.dismiss();
notifyDataSetChanged();
}
};
}
private class ViewHolder {
private TextView tv_delet, tv_interfacetype, tv_showtime;
private ImageView iv_showaction;
}
问题自我感觉时出现在哪个OnitemClickListener 上
复用的时候也会出现混乱问题
有没有大神好心回答啊,我自己研究一天了也没出结果
上面的赋值时,总是赋值给最后一个list的position
你是把popu嵌套在listView中?
是啊,在item点击时创建pop
找到问题的解决办法了 /....只要给控件加个tag就行了 ...然后必须要重置下开发环境和测试包....要不运行的不是最新修改的代码...晕...原来我早就解决了