布局
<com.youloft.pandacal.view.swipe.SwipeMenuListView
android:id="@+id/lv_reminds"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/toolbar"
android:background="?attr/colorPrimary"
android:divider="@null" />
数据绑定
adapter = new EventsAdapter1(this, events, indexToday, indexLater);
lv_reminds.setAdapter(adapter);
点击事件
lv_reminds.setOnItemClickListener(this);
主函数继承AdapterView.OnItemClickListener
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Event event = (Event) adapter.getItem(position);
if (event == null) {
return;
}
Intent intent = new Intent(this, EditEventActivity.class);
EditEventActivity.event = event;
startActivity(intent);
}
侧滑删除:
接口:
public interface SwipeMenuCreator {
void create(SwipeMenu menu);
}
具体实现
SwipeMenuCreator swipeMenuCreator = new SwipeMenuCreator() {
@Override
public void create(SwipeMenu menu) {
SwipeMenuItem openItem = new SwipeMenuItem(
getApplicationContext());
// set item background
// openItem.setBackground(new ColorDrawable(Color.rgb(0xC9, 0xC9,
// 0xCE)));
// openItem.setBackground(LayoutToDrawable(R.layout.menu_del));
// set item width
openItem.setWidth(DisplayUtil.dip2px(EventsActivity.this, 90));
// set item title
// openItem.setTitle("DEL");
openItem.setIcon(R.mipmap.icon_del);
// set item title fontsize
openItem.setTitleSize(18);
// set item title font color
openItem.setTitleColor(Color.WHITE);
// add to menu
menu.addMenuItem(openItem);
}
};
SwipeMenuListView方法:
public void setMenuCreator(SwipeMenuCreator menuCreator) {
this.mMenuCreator = menuCreator;
}
public void setOnMenuItemClickListener(
OnMenuItemClickListener onMenuItemClickListener) {
this.mOnMenuItemClickListener = onMenuItemClickListener;
}
添加删除图标和具体点击事件:
lv_reminds.setMenuCreator(swipeMenuCreator);
lv_reminds.setOnMenuItemClickListener(new SwipeMenuListView.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(int position, SwipeMenu menu, int index) {
switch (index) {
case 0:
EventUtils.delEvent(EventsActivity.this, (Event) adapter.getItem(position));
initData();
del = true;
FlurryAgent.logEvent("EVENTS.DEL");
break;
}
return false;
}
});