使用活动删除卡

时间:2014-01-23 07:30:49

标签: java android listview cardslib

我正在使用gabrielemariotti的cardslib。我正在使用可扩展的ListView卡。我内部有自定义布局,ListView卡内部的视图是图像视图,名称删除。我打算使用Remove imageview作为触发器从列表中动态删除卡片。

问题是,卡上有两个布局,标题和主要内容。顺便说一句,这些卡包含在ListView中。其中一个布局是位于删除 imageview。下面的代码可以通过单击删除卡。 CardListView

 CardHeader header = new CardHeader(getActivity());

        //Set the header title
        header.setTitle(titleHeader);

        //Set visible the expand/collapse button
        header.setButtonExpandVisible(true);

        header.setOtherButtonClickListener(new CardHeader.OnClickCardHeaderOtherButtonListener() {
            @Override
            public void onButtonItemClick(Card card, View view) {
                Toast.makeText(getActivity(), "Drawable", Toast.LENGTH_SHORT).show();
                if(mCardArrayAdapter!=null){

                    mCardArrayAdapter.remove(card); //It is an example.
                }

            }
        });

单击图像视图删除时,下面的代码将触发Toast,

@Override
    public void setupInnerViewElements(ViewGroup parent,View view){



        //Add simple title to header
        if (view!=null){
            TextView mTitleView=(TextView) view.findViewById(R.id.card_header_inner_simple_title);
            if (mTitleView!=null)
                mTitleView.setText(mTitle);

            ImageView img = (ImageView)view.findViewById(R.id.cancel);

            img.setOnClickListener(new OnClickListener(){

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Toast.makeText(getContext(), "Clicked", Toast.LENGTH_SHORT).show();
                }});

        }

    }

我想把两者结合起来。 library

1 个答案:

答案 0 :(得分:2)

Cardslib的工作方式就像首先将所有卡片添加到一个卡片阵列中,然后将卡片阵列初始化为CardArrayAdapter。

与使用ListView相同。因此,删除一个项目也与从ListView中删除相同。

1)在任何情况下,从卡片阵列中取出卡片。

2)调用notifyDataSetChanged();在您的CardArrayAdapter对象上。它将更新卡片列表并从视图中删除已删除的卡片。