【问题标题】:How to open new activity after clicking on childitem in expandablelistview单击可扩展列表视图中的子项后如何打开新活动
【发布时间】:2018-08-31 04:43:24
【问题描述】:

我正在使用可扩展列表视图来打开标题,然后是副标题。但是,当我点击副标题时,它应该会打开新活动。

请在这里帮帮我,而不是说 childitem 被点击的 toast。

private OnChildClickListener myListItemClicked =  new OnChildClickListener() {

    public boolean onChildClick(ExpandableListView parent, View v,
                                int groupPosition, int childPosition, long id) {

        //get the group header
        HeaderInfo headerInfo = SectionList.get(groupPosition);
        //get the child info
        DetailInfo detailInfo =  headerInfo.getProductList().get(childPosition);
        //display it or do something with it
        Toast.makeText(getBaseContext(), "Clicked on Detail " + headerInfo.getName()
                + "/" + detailInfo.getName(), Toast.LENGTH_LONG).show();
        return false;
    }
};

【问题讨论】:

    标签: android expandablelistview


    【解决方案1】:

    将 ThisActivity 替换为您当前的活动,将 YourNewActivity 替换为您想要进行的新活动

    private OnChildClickListener myListItemClicked = new OnChildClickListener() {
    
        public boolean onChildClick(ExpandableListView parent, View v,
                                    int groupPosition, int childPosition, long id) {
    
            //get the group header
            HeaderInfo headerInfo = SectionList.get(groupPosition);
            //get the child info
            DetailInfo detailInfo =  headerInfo.getProductList().get(childPosition);
            //display it or do something with it
            Toast.makeText(getBaseContext(), "Clicked on Detail " + headerInfo.getName()
                    + "/" + detailInfo.getName(), Toast.LENGTH_LONG).show();
    
        switch(childPosition) {
        case 0:
            Intent intent = new Intent(ThisActivity.this, YourNewActivity0.class);
            break;
        case 1:
            Intent intent = new Intent(ThisActivity.this, YourNewActivity1.class);
            break;
        case 2:
            Intent intent = new Intent(ThisActivity.this, YourNewActivity2.class);
            break;
    }
    
        startActivity(intent);
            return false;
        }
    };
    

    【讨论】:

    • 假设,我有三个子项,在一个标题中,那么它可能会一直打开一个活动。单击子项 child1、child2、child 时,我想打开三个单独的活动。
    • 如果您的操作量很少,这是一种快速且作弊的方式。
    • 哦..是的。我想将此子项作为按钮来打开任何活动。你能告诉我任何链接吗?好的,谢谢你的回复。
    • 如果您有少量代码并且每个都去一个完全不同的活动,那么这是最快的方法,如果所有孩子都去一个活动但对该活动有不同的信息,那么它将是另一种实现。 (我已经用开关盒更新了代码)
    【解决方案2】:

    感谢@Angus Tay; 我从你的回复中得到了想法。 我找到了下面给出的答案,它对我有用......

    switch(groupPosition) {
                    case 0:
                        switch (childPosition) {
                            case 0:
                                Intent c1= new Intent(MainActivity.this,YourNewActivity0.class);
                                startActivity(c1);
                                break;
                            case 1:
                                Intent d2= new Intent(MainActivity.this,YourNewActivity1.class);
                                startActivity(d2);
                                break;
                            case 2:
                                Intent d3= new Intent(MainActivity.this,YourNewActivity2.class);
                                startActivity(d3);
                                break;
    
    
                        }
                        break;
                    case 1:
                        switch (childPosition) {
                            case 0:
                                Intent d1= new Intent(MainActivity.this,YourNewActivity0.class);
                                startActivity(d1);
                                break;
                            case 1:
                                Intent d2= new Intent(MainActivity.this,YourNewActivity1.class);
                                startActivity(d2);
                                break;
    
    
                        }
                        break;
                    case 2:
                        switch (childPosition) {
                            case 0:
                                Intent a1= new Intent(MainActivity.this,YourNewActivity0.class);
                                startActivity(a1);
                                break;
                            case 1:
                                Intent a2= new Intent(MainActivity.this,YourNewActivity1.class);
                                startActivity(a2);
                                break;
    
                        }
                }
                return false;
            }
        };
    

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多