Удалить карту с помощью события

Я использую cardlib от gabrielemariotti. Я использую расширяемую карту ListView. У меня есть собственный макет внутри него, и один из видов внутри карты ListView - это изображение, имя удалить. Я планирую использовать функцию "Удалить изображение" в качестве триггера для динамического удаления карты из списка.

Проблема в том, что на Карте задействованы два макета: заголовок и основной контент. Карты, кстати, содержатся внутри ListView. Одним из макетов, является удаление изображения просмотра. Код ниже может удалить карту, нажав на нее. 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.
                }

            }
        });

Приведенный ниже код вызовет тост, когда нажата кнопка "Удалить изображение",

@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();
                }});

        }

    }

Я хотел объединить два. Библиотека

1 ответ

Решение

Cardslib работает так: сначала вы добавляете все свои карты в один массив карт, а затем инициализируете свой CardArrayAdapter с помощью массива карт.

Это так же, как использование ListView. Таким образом, удаление одного элемента аналогично удалению из вашего ListView.

1) В любом случае удалите карту из массива карт.

2) Вызовите notifyDataSetChanged(); на вашем объекте CardArrayAdapter. Он обновит список карт и удалит удаленную карту из представления.

Другие вопросы по тегам