Listview中嵌套popupwindow出现的问题

点击pop中信息显示在listview控件上,无法获取想要显示的item位置

求助问题出现在哪,怎么解决? 附上adapter代码:

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就行了 ...然后必须要重置下开发环境和测试包....要不运行的不是最新修改的代码...晕...原来我早就解决了