当前位置: 代码迷 >> Android >> 关于listview显示有关问题,点击item选项areaBtn这个testview里面不显示areaBtn2的testview可以显示求大神帮忙。多谢!
  详细解决方案

关于listview显示有关问题,点击item选项areaBtn这个testview里面不显示areaBtn2的testview可以显示求大神帮忙。多谢!

热度:37   发布时间:2016-04-27 22:47:44.0
关于listview显示问题,点击item选项areaBtn这个testview里面不显示areaBtn2的testview可以显示求大神帮忙。谢谢!!!
    public void initSpinner() {
        View areaView = LayoutInflater.from(this).inflate(R.layout.supplier_join_condtion_area, null);
        leftMenu = ButterKnife.findById(areaView, R.id.supplier_join_condition_left);
        rightMenu= ButterKnife.findById(areaView, R.id.supplier_join_condition_left);
        areaLeftCondAdapter = new SupplierJointwoAdapt(this);
        leftMenu.setAdapter(rightAdapter);
        rightMenu.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                areaLeftCondAdapter.setCurPosition(position);
                SupplierCategory node = (SupplierCategory) areaLeftCondAdapter.getItem(position);          
                    liftbtn = node.getName();
                    areaBtn.setText(liftbtn);
                    popupWindow.dismiss();
        });
        rightAdapter=new SupplierJoinDistrictAdapt(this);
        rightMenu.setAdapter(areaLeftCondAdapter);
        rightMenu.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                rightAdapter.setCurPosition(position);
                BusinessArea node = (BusinessArea) rightAdapter.getItem(position);
                rightbtn = node.getName();
                areaBtn2.setText(rightbtn);
                popupWindow.dismiss();
            }
        });

        createPop(areaView);
    }
   
    @Optional
    @OnClick(R.id.supplier_join_2spinner2)
    public void District() {
        disSelected(areaBtn2);
    }
    private void btnSelected(View view) {
        if (!isCondLoaded) {
            requestSupplierJoinList();
        }
        if (view == areaBtn) {
            leftMenu.setAdapter(areaLeftCondAdapter);
           
        }
        if (!popupWindow.isShowing()) {
            popupWindow.showAsDropDown(conditionView);
            view.setSelected(true);
        } else {
            popupWindow.dismiss();
            view.setSelected(false);
        }
    }
    private void disSelected(View view){
        if (!isCondLoaded){
            requestSupplierJoinList();
        }
        if (view==areaBtn2){
            rightMenu.setAdapter(rightAdapter);
         
        }

        if (!popupWindow.isShowing()) {
            popupWindow.showAsDropDown(conditionView2);
            view.setSelected(true);
        } else {
            popupWindow.dismiss();
            view.setSelected(false);
        }
    }


    private void createPop(View popView) {
        //create pop
        popupWindow = new PopupWindow(popView, LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.MATCH_PARENT);
        popupWindow.setBackgroundDrawable(new BitmapDrawable());
        popupWindow.setOutsideTouchable(true);
        popupWindow.update();
        popupWindow.setTouchable(true);
        popupWindow.setFocusable(true);

        popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
            @Override
            public void onDismiss() {
                clearBtnCheck();
            }
        });
    }
    public void clearBtnCheck() {
        areaBtn.setSelected(false);
        areaBtn2.setSelected(false);
    }

------解决思路----------------------
这个是listview缓存的问题  用viewholder
  相关解决方案