Удалить карту с помощью события
Я использую 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. Он обновит список карт и удалит удаленную карту из представления.