单击每个可扩展项目后如何启动 activity
how start activity after each expandable items clicked
我根据 this tutorial 创建了一个可扩展列表。现在我想为每个项目设置 onClickListener 并在单击项目时启动 activity!
问题在这里:在 MyExpandableListAdapter
的 getChildView
中,我无法使用 startActivity()
方法。我该怎么办?
您可以像这样为每个 childItem
和 groupItem
设置 onclick
事件:
通过 groupPosition
和 childPosition
你可以检测到哪个项目被点击
listView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
return false;
}
});
listView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
return false;
}
});
我用下面的代码解决了我的问题:
ExpandableListView listView = (ExpandableListView) findViewById(R.id.exlistView);
MyExpandableListAdapter adapter = new MyExpandableListAdapter(MainActivity.this, MainActivity.groups)
{
@Override
public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
View v= super.getChildView(groupPosition, childPosition, isLastChild, convertView, parent);
((LinearLayout) v).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//.....
startActivity(...);
}
});
return v;
}
};
我根据 this tutorial 创建了一个可扩展列表。现在我想为每个项目设置 onClickListener 并在单击项目时启动 activity!
问题在这里:在 MyExpandableListAdapter
的 getChildView
中,我无法使用 startActivity()
方法。我该怎么办?
您可以像这样为每个 childItem
和 groupItem
设置 onclick
事件:
通过 groupPosition
和 childPosition
你可以检测到哪个项目被点击
listView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
return false;
}
});
listView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
return false;
}
});
我用下面的代码解决了我的问题:
ExpandableListView listView = (ExpandableListView) findViewById(R.id.exlistView);
MyExpandableListAdapter adapter = new MyExpandableListAdapter(MainActivity.this, MainActivity.groups)
{
@Override
public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
View v= super.getChildView(groupPosition, childPosition, isLastChild, convertView, parent);
((LinearLayout) v).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//.....
startActivity(...);
}
});
return v;
}
};