引用別人的demo地址:html
http://www.jcodecraeer.com/a/opensource/2014/1015/1777.html java
下面是我在項目中的實現代碼的主要片斷,主要是側滑後建立不一樣類型的按鈕及點擊後的操做。
android
一.佈局文件中使用SwipeMenuListView:json
<com.ly.sxh.swipemenulistview.SwipeMenuListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@id/layout_bottom" android:layout_below="@id/tvCreateRoom" android:layout_margin="10dp" android:dividerHeight="10dp" />
二.Activity中使用控件:app
SwipeMenuListView listView = (SwipeMenuListView) findViewById(R.id.listview); listView.setMenuCreator(new MySwipeMenuCreator()); listView.setOnItemClickListener(this); listView.setOnMenuItemClickListener(this);
三.MySwipeMenuCreator的實現側滑的item按鈕:ide
public class MySwipeMenuCreator implements SwipeMenuCreator { @Override public void create(SwipeMenu menu) { createMenu(menu); } private void createMenu(SwipeMenu menu) { // menu.getViewType() 用來區分建立那種類型的按鈕 String title = (menu.getViewType() == 0) ? "解散" : "退出"; SwipeMenuItem openItem = new SwipeMenuItem(getApplicationContext()); openItem.setBackground(new ColorDrawable(Color.rgb(0xC9, 0xC9, 0xCE))); openItem.setWidth(240); openItem.setTitle(title); openItem.setTitleSize(18); openItem.setTitleColor(Color.WHITE); menu.addMenuItem(openItem); } }
四.側滑後item中的按鈕點擊事件:佈局
@Override public void onMenuItemClick(int position, SwipeMenu menu, int index) { // TODO 點擊後的操做 }
五.Adapter中代碼:
this
@Override public int getViewTypeCount() { return 2; // 建立按鈕的類型總數 } @Override public int getItemViewType(int position) { int type = 0; // 根據type來區分建立按鈕的類型 try { JSONObject json = jray.getJSONObject(position); type = json.getString("createId").equals(app.userid) ? 0 : 1; } catch (Exception e) { Log.e(TAG, e.toString()); } return type; }