我的listview的隐形删除按钮来自android中的所有行

时间:2013-07-30 08:31:36

标签: android button android-listview visibility

我正在尝试使用单击按钮在ListView的每一行中显示和隐藏删除按钮。

为此,我尝试使用以下代码:

SavedHomeBaseAdapter extends BaseAdapter {
        private LayoutInflater mInflater;
        Context cntx;
        public SavedHomeBaseAdapter(Context context) {          
            mInflater = LayoutInflater.from(context);
        }

        @Override
        public int getCount() {

            return m_savedHomesList.size();
        }

        @Override
        public Object getItem(int position) {
            return position;
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @SuppressWarnings("deprecation")
        @Override
        public View getView( final int position, View convertView,final ViewGroup parent) {
            final ViewHolder holder;

            if (convertView == null) {
                convertView = mInflater.inflate(R.layout.nearbyhomestext, null);
                holder = new ViewHolder();

                holder.sqrt = (TextView) convertView.findViewById(R.id.text_squareft);
                holder.fromPrice = (TextView) convertView.findViewById(R.id.text_from_price);
                holder.deleteButton = (Button) convertView.findViewById(R.id.delete_btn);

                convertView.setTag(holder);
            } else {
                holder = (ViewHolder) convertView.getTag();
            }   

            } 
                  if(MyActivity.editButtonState)
            {
                holder.deleteButton.setVisibility(View.INVISIBLE);
                notifyDataSetChanged();
                MyActivity.editButtonState =false;
            }


            return convertView;
        }
    }

这里,如果editButtonState为true ..则第一行的删除按钮被隐藏。但是,我想隐藏列表视图中所有项目的删除按钮。

请帮帮我。提前谢谢。

2 个答案:

答案 0 :(得分:2)

你试过删除这两行吗?

notifyDataSetChanged();
MyActivity.editButtonState =false;

我的意思是,如果你想隐藏所有按钮,不要在那里更改editButtonState值,因为下次代码通过方法时,值将为false,因此其他元素不会被隐藏。< / p>

答案 1 :(得分:0)

更新:

我误解了需要一个循环,或者,实际上并不需要如你所说的那样。我现在看到getView是针对单个项目的。

您可能还想移动此代码:

MyActivity.editButtonState = false;

到您按下以显示/隐藏的按钮下方的代码块。目前,它将在第一行被隐藏后执行,因此意味着

if(MyActivity.editButtonState)

不会被多次调用。将它放在显示/隐藏按钮下,最后。