现在我只想点击expadablelistadapter 它将进入另一个活动。如何确定点击了哪一个?我是android的新手,希望有人可以帮助我。
这是我的listadapter代码所在的代码
public class MyExpandableListAdapter extends BaseExpandableListAdapter {
private Context context;
private String container;
private ArrayList<ParentRow> parentRowList;
private ArrayList<ParentRow> originalList;
public MyExpandableListAdapter(Context context
, ArrayList<ParentRow> originalList) {
this.context = context;
this.parentRowList = new ArrayList<>();
this.parentRowList.addAll(originalList);
this.originalList = new ArrayList<>();
this.originalList.addAll(originalList);
}
@Override
public int getGroupCount() {
return parentRowList.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return parentRowList.get(groupPosition).getChildList().size();
}
@Override
public Object getGroup(int groupPosition) {
return parentRowList.get(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return parentRowList.get(groupPosition).getChildList().get(childPosition);
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
ParentRow parentRow = (ParentRow) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater layoutInflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.parent_row, null);
}
TextView heading = (TextView) convertView.findViewById(R.id.parent_text);
heading.setText(parentRow.getName().trim());
return convertView;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
ChildRow childRow = (ChildRow) getChild(groupPosition, childPosition);
if (convertView == null) {
LayoutInflater layoutInflater = (LayoutInflater)
context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.child_row, null);
}
ImageView childIcon = (ImageView) convertView.findViewById(R.id.child_icon);
childIcon.setImageResource(childRow.getIcon());
final TextView childText = (TextView) convertView.findViewById(R.id.child_text);
childText.setText(childRow.getText().trim());
final View finalConvertView = convertView;
childText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(finalConvertView.getContext()
, childText.getText()
, Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
public void filterData(String query) {
query = query.toLowerCase();
parentRowList.clear();
if (query.isEmpty()) {
parentRowList.addAll(originalList);
}
else {
for (ParentRow parentRow : originalList) {
ArrayList<ChildRow> childList = parentRow.getChildList();
ArrayList<ChildRow> newList = new ArrayList<ChildRow>();
for (ChildRow childRow: childList) {
if (childRow.getText().toLowerCase().contains(query)) {
newList.add(childRow);
}
} // end for (com.example.user.searchviewexpandablelistview.ChildRow childRow: childList)
if (newList.size() > 0) {
ParentRow nParentRow = new ParentRow(parentRow.getName(), newList);
parentRowList.add(nParentRow);
}
} // end or (com.example.user.searchviewexpandablelistview.ParentRow parentRow : originalList)
} // end else
notifyDataSetChanged();
}
}
这是我的代码的一部分,我的onclick功能是假设的,我想添加和意图其他活动我该如何实现它?
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
ChildRow childRow = (ChildRow) getChild(groupPosition, childPosition);
if (convertView == null) {
LayoutInflater layoutInflater = (LayoutInflater)
context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.child_row, null);
}
ImageView childIcon = (ImageView) convertView.findViewById(R.id.child_icon);
childIcon.setImageResource(childRow.getIcon());
final TextView childText = (TextView) convertView.findViewById(R.id.child_text);
childText.setText(childRow.getText().trim());
final View finalConvertView = convertView;
childText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(finalConvertView.getContext()
, childText.getText()
, Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
答案 0 :(得分:1)
在您的课程中覆盖此功能:
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
//check childPosition and call appropriate activity
return true;
}
答案 1 :(得分:0)
添加这两个监听器
expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
//here get you selected groupPosition
Log.e("position",""+groupPosition);
ParentRow parentRow = parentRowList.get(groupPosition);
//if you want to send intent of any parent row click then put intent code here
startActivity(new Intent......);
return false;
}
});
expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
//here get you selected groupPostion and childPosition
Log.e("position",""+groupPosition+":"+childPosition);
ChildRow childRow = parentRowList.get(groupPosition).getChildList().get(childPosition)
//if you want to send intent of any child row click then put intent code here
startActivity(new Intent......);
return false;
}
});