如何给ExpandableListView的child注册registerForContextMenu()?
public class MyExpandableAdapter extends BaseExpandableListAdapter {private Context mContext = null;
public List<? extends Map<String, ?>> mGroups = null;
ArrayList<List<HashMap<String, Object>>> mChilds =null;
public MyExpandableAdapter(Context context,
List<Map<String, String>> groupData, int expandedGroupLayout, String[] groupFrom,
int[] groupTo, ArrayList<List<HashMap<String, Object>>> childData,
int childLayout, String[] childFrom, int[] childTo) {
// TODO Auto-generated constructor stub
super();
this.mGroups = groupData;
this.mChilds= childData;
this.mContext=context;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return mChilds.get(groupPosition).get(childPosition);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
@SuppressWarnings("unchecked")
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
String text = ((Map<String, String>) getChild(groupPosition, childPosition)).get("mp3Name");
LayoutInflater layoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//获取二级列表对应的布局文件, 并将其各元素设置相应的属性
LinearLayout linearLayout = (LinearLayout) layoutInflater.inflate(R.drawable.childs, null);
TextView tv = (TextView) linearLayout.findViewById(R.id.mp3Name);
tv.setText(text);
return linearLayout;
}
//返回childPosition的mp3Name
@SuppressWarnings("unchecked")
public String getChildName(int groupPosition, int childPosition){
return ((Map<String, String>) getChild(groupPosition, childPosition)).get("mp3Name");
}
@Override
public int getChildrenCount(int groupPosition) {
// TODO Auto-generated method stub
return mChilds.get(groupPosition).size();
}
@Override
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return mGroups.get(groupPosition);
}
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return mGroups.size();
}
@Override
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
String text = (String) mGroups.get(groupPosition).get("group");
LayoutInflater layoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//获取一级列表布局文件,设置相应元素属性
LinearLayout linearLayout = (LinearLayout) layoutInflater.inflate(R.drawable.groups, null);
TextView textView = (TextView)linearLayout.findViewById(R.id.textGroup);
textView.setText(text);
return linearLayout;
}
@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return true;
}
@Override
public boolean areAllItemsEnabled() {
// TODO Auto-generated method stub
return false;
}
@Override
public void registerDataSetObserver(DataSetObserver observer) {
// TODO Auto-generated method stub
super.registerDataSetObserver(observer);
}
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
return super.isEmpty();
}
}
重写BaseExpandableListAdapter 如何得到 孩子(child)视图,我想把子视图放进去registerForContextMenu();
如果registerForContextMenu(getExpandableListView()); 它会为所有item注册监听...QQ好友列表,长按好友会弹出Menu但长按组就不会,这样怎么实现啊?求助!!!help!!!! --------------------编程问答-------------------- 发现是组的就return不就可以了
补充:Java , Eclipse