CourseAdapter.java
public class CourseAdapter extends BaseExpandableListAdapter {
private Context ctx;
private HashMap<String, List<String>> Topics_Category;
private List<String> Introduction_List;
public CourseAdapter(Context ctx, HashMap<String, List<String>> Topics_Category, List<String> Introduction_List){
this.ctx= ctx;
this.Topics_Category = Topics_Category;
this.Introduction_List = Introduction_List;
}
@Override
public int getGroupCount() {
return Introduction_List.size();
}
@Override
public int getChildrenCount(int i) {
return Topics_Category.get(Introduction_List.get(i)).size();
}
@Override
public Object getGroup(int i) {
return Introduction_List.get(i);
}
@Override
public Object getChild(int parent, int child) {
return Topics_Category.get(Introduction_List.get(parent)).get(child);
}
@Override
public long getGroupId(int i) {
return i;
}
@Override
public long getChildId(int parent, int child) {
return child;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(int parent, boolean isExpanded, View convertView, ViewGroup parentview) {
String group_title = (String) getGroup(parent);
if (convertView == null)
{
LayoutInflater inflator = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflator.inflate(R.layout.activity_parent_list_view_layout, parentview, false);
}
TextView parent_textview = convertView.findViewById(R.id.parent_txt);
parent_textview.setTypeface(null, Typeface.BOLD);
parent_textview.setText(group_title);
return convertView;
}
@Override
public View getChildView(int parent, int child, boolean lastChild, View convertview, ViewGroup parentview) {
String child_title = (String) getChild(parent, child);
if (convertview == null)
{
LayoutInflater inflator = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertview = inflator.inflate(R.layout.activity_child_list_view_layout, parentview, false);
}
TextView child_textview = (TextView) convertview.findViewById(R.id.child_txt);
child_textview.setText(child_title);
return convertview;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
MainListViewActivity.java
public class MainListViewActivity extends AppCompatActivity {
HashMap<String, List<String>> Introduction;
List<String> Introduction_list;
ExpandableListView Exp_list;
CourseAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_list_view);
Exp_list = (ExpandableListView) findViewById(R.id.exp_list);
Introduction = DataProvider.getInfo();
Introduction_list = new ArrayList<String>(Introduction.keySet());
adapter = new CourseAdapter(this, Introduction, Introduction_list);
Exp_list.setAdapter(adapter);
Exp_list.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPosition) {
Toast.makeText(getBaseContext(), Introduction_list.get(groupPosition)+ " is Expanded", Toast.LENGTH_LONG).show();
}
});
Exp_list.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() {
@Override
public void onGroupCollapse(int groupPosition) {
Toast.makeText(getBaseContext(), Introduction_list.get(groupPosition)+ " is Collapsed", Toast.LENGTH_LONG).show();
}
});
Exp_list.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
Toast.makeText(getBaseContext(), Introduction.get(Introduction_list.get(groupPosition)).get(childPosition)+ " from category "+
Introduction_list.get(groupPosition)+ " is selected ", Toast.LENGTH_LONG).show();
return false;
}
});
}
}
答案 0 :(得分:1)
您只需要在setOnChildClickListener方法中传递Intent。
Exp_list.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
Toast.makeText(getBaseContext(), Introduction.get(Introduction_list.get(groupPosition)).get(childPosition)+ " from category "+
Introduction_list.get(groupPosition)+ " is selected ", Toast.LENGTH_LONG).show();
Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
return false;
}
});