单击每个可扩展项目后如何启动 activity

how start activity after each expandable items clicked

我根据 this tutorial 创建了一个可扩展列表。现在我想为每个项目设置 onClickListener 并在单击项目时启动 activity! 问题在这里:在 MyExpandableListAdaptergetChildView 中,我无法使用 startActivity() 方法。我该怎么办?

您可以像这样为每个 childItemgroupItem 设置 onclick 事件:
通过 groupPositionchildPosition 你可以检测到哪个项目被点击

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;
        }
    };