在使用ExpandableListView的时候,很多时候需要用到长点击事件。虽然ExpandableListView有个事件OnChildClickListener,但是没有对应的OnChildLongClickListener。这个时候我们可以自己写一个用同种效果的事件来代替OnChildLongClickListener()。 前提条件:在我们的Activity中已经有一个ExpandableListView对象, private ExpandableListView expandableListView; 第一步:注册,给这个ExpandableListView对象注册一个Menu事件, registerForContextMenu(expandableListView); 第二步:重写方法,重写onCreateContextMenu方法, @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); ExpandableListView.ExpandableListContextMenuInfo info = (ExpandableListView.ExpandableListContextMenuInfo) menuInfo; int type = ExpandableListView .getPackedPositionType(info.packedPosition); int group = ExpandableListView .getPackedPositionGroup(info.packedPosition); int child = ExpandableListView .getPackedPositionChild(info.packedPosition); if (type == 1) { Log.i(TAG,“长点击事件------在这里写任何长点击之后的处理代码”); } } |