开关案例功能只打开最后一项

时间:2017-12-21 10:40:05

标签: java android webview navigation

您好我有一个Navigation菜单,可以使用开关盒功能。标题组组件使用" i"定义。子菜单组件定义为" il"。我正在尝试打开子菜单,但它只打开第3项上最后定义的链接。为什么子菜单只打开最后一个链接?我的错误在哪里?请帮忙!

这个功能:

prepareListData();
        mMenuAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild, expandableList);

        // setting list adapter
        expandableList.setAdapter(mMenuAdapter);

        expandableList.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
            @Override
            public boolean onChildClick(ExpandableListView expandableListView, View view, int i, int i1, long l) {
                //Log.d("DEBUG", "submenu item clicked");

                switch (i) {
                    case 0 :
                        webView.loadUrl("http://pixelay.com/");
                        break;

                    case 1 :
                        webView.loadUrl("http://pixelay.com/news/");
                        break;

                    case 2 :
                        switch (i1) {
                            case 0:
                                webView.loadUrl("http://pixelay.com/apple/");
                                break;
                            case 1:
                                webView.loadUrl("http://pixelay.com/apple/iphone/");
                                break;
                            case 2:
                                webView.loadUrl("http://pixelay.com/apple/ipad/");
                                break;
                            case 3:
                                webView.loadUrl("http://pixelay.com/apple/mac/");
                                break;
                            case 4:
                                webView.loadUrl("http://pixelay.com/apple/appletipps/");
                                break;
                            case 5:
                                webView.loadUrl("http://pixelay.com/apple/ios-apps/");
                                break;
                        }

                    case 3 :
                        switch (i1) {
                            case 0:
                                webView.loadUrl("http://pixelay.com/android/");
                                break;
                            case 1:
                                webView.loadUrl("http://pixelay.com/android/smartphones/");
                                break;
                            case 2:
                                webView.loadUrl("http://pixelay.com/android/tablets/");
                                break;
                            case 3:
                                webView.loadUrl("http://pixelay.com/android/androidtipps/");
                                break;
                            case 4:
                                webView.loadUrl("http://pixelay.com/android/android-apps/");
                                break;
                        }

                    ...


                return false;
            }
        });
       ....

3 个答案:

答案 0 :(得分:2)

您忘了在break

中添加expandableList.setOnChildClickListener声明

以下是您忘记添加case

的部分break
  • case 2
  • case 3
  • case 4
  • <强> case 5

  • <强> case 6

  • case 7

答案 1 :(得分:1)

当您检查&#39; {{case 3case 4case 5case 6case 7时,没有任何中断声明1}}&#39;值。问题是在这些情况下,当它将遍历i并且如果i1与任何嵌套案例都不匹配,那么它将用于下一个案例。

因此,在每个嵌套i1之后放置break,这将解决您的问题。

答案 2 :(得分:0)

您忘记在父案件后添加break

 prepareListData();
        mMenuAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild, expandableList);

        // setting list adapter
        expandableList.setAdapter(mMenuAdapter);

        expandableList.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
            @Override
            public boolean onChildClick(ExpandableListView expandableListView, View view, int i, int i1, long l) {
                //Log.d("DEBUG", "submenu item clicked");

                switch (i) {
                    case 0 :
                        webView.loadUrl("http://pixelay.com/");
                        break;

                    case 1 :
                        webView.loadUrl("http://pixelay.com/news/");
                        break;

                    case 2 :
                        switch (i1) {
                            case 0:
                                webView.loadUrl("http://pixelay.com/apple/");
                                break;
                            case 1:
                                webView.loadUrl("http://pixelay.com/apple/iphone/");
                                break;
                            case 2:
                                webView.loadUrl("http://pixelay.com/apple/ipad/");
                                break;
                            case 3:
                                webView.loadUrl("http://pixelay.com/apple/mac/");
                                break;
                            case 4:
                                webView.loadUrl("http://pixelay.com/apple/appletipps/");
                                break;
                            case 5:
                                webView.loadUrl("http://pixelay.com/apple/ios-apps/");
                                break;
                        }
                    break;
                    case 3 :
                        switch (i1) {
                            case 0:
                                webView.loadUrl("http://pixelay.com/android/");
                                break;
                            case 1:
                                webView.loadUrl("http://pixelay.com/android/smartphones/");
                                break;
                            case 2:
                                webView.loadUrl("http://pixelay.com/android/tablets/");
                                break;
                            case 3:
                                webView.loadUrl("http://pixelay.com/android/androidtipps/");
                                break;
                            case 4:
                                webView.loadUrl("http://pixelay.com/android/android-apps/");
                                break;
                        }
                    break;
                    case 4 :
                        switch (i1) {
                            case 0:
                                webView.loadUrl("http://pixelay.com/windows/");
                                break;
                            case 1:
                                webView.loadUrl("http://pixelay.com/windows/tablets-windows/");
                                break;
                            case 2:
                                webView.loadUrl("http://pixelay.com/windows/ultrabooks-windows/");
                                break;
                            case 3:
                                webView.loadUrl("http://pixelay.com/windows/pc-windows/");
                                break;
                        }
                    break;
                    case 5 :
                        switch (i1) {
                            case 0:
                                webView.loadUrl("http://pixelay.com/testberichte/smartphone-testberichte/");
                                break;
                            case 1:
                                webView.loadUrl("http://pixelay.com/testberichte/tablet-testberichte/");
                                break;
                            case 2:
                                webView.loadUrl("http://pixelay.com/testberichte/ultrabooks-testberichte/");
                                break;
                            case 3:
                                webView.loadUrl("http://pixelay.com/testberichte/prozessoren-testberichte/");
                                break;
                            case 4:
                                webView.loadUrl("http://pixelay.com/testberichte/grafikkarten-testberichte/");
                                break;
                        }
                     break;
                    case 6 :
                        switch (i1) {
                            case 0:
                                webView.loadUrl("http://pixelay.com/top20/smartphones/");
                                break;
                            case 1:
                                webView.loadUrl("http://pixelay.com/top20/tablets/");
                                break;
                            case 2:
                                webView.loadUrl("http://pixelay.com/top20/ultrabooks/");
                                break;
                            case 3:
                                webView.loadUrl("http://pixelay.com/top20/prozessoren/");
                                break;
                            case 4:
                                webView.loadUrl("http://pixelay.com/top20/grafikkarten/");
                                break;
                        }
 break;
                    case 7 :
                        switch (i1) {
                            case 0:
                                webView.loadUrl("http://pixelay.com/wallpaper/autos/");
                                break;
                            case 1:
                                webView.loadUrl("http://pixelay.com/wallpaper/natur/");
                                break;
                            case 2:
                                webView.loadUrl("http://pixelay.com/wallpaper/pflanzen/");
                                break;
                            case 3:
                                webView.loadUrl("http://pixelay.com/wallpaper/landschaften/");
                                break;
                            case 4:
                                webView.loadUrl("http://pixelay.com/wallpaper/tiere/");
                                break;
                            case 5:
                                webView.loadUrl("http://pixelay.com/wallpaper/stadtansichten/");
                                break;
                            case 6:
                                webView.loadUrl("http://pixelay.com/wallpaper/struktur/");
                                break;
                            case 7:
                                webView.loadUrl("http://pixelay.com/wallpaper/technik/");
                                break;
                        }
                    break;
                    case 8 :
                        webView.loadUrl("http://pixelay.com/news/");
                        break;
                }

                return false;
            }
        });
        expandableList.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
            @Override
            public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) {
                //Log.d("DEBUG", "heading clicked");
                switch (i) {
                    case 0:
                        webView.loadUrl("http://pixelay.com/");
                        break;

                    case 1:
                        webView.loadUrl("http://pixelay.com/news/");
                        break;

                    case 2:
                        webView.loadUrl("http://pixelay.com/apple/");
                        break;

                    case 3:
                        webView.loadUrl("http://pixelay.com/android/");
                        break;

                    case 4:
                        webView.loadUrl("http://pixelay.com/windows/");
                        break;

                    case 5:
                        webView.loadUrl("http://pixelay.com/testberichte/");
                        break;

                    case 6:
                        webView.loadUrl("http://pixelay.com/top20/");
                        break;

                    case 7:
                        webView.loadUrl("http://pixelay.com/wallpaper/");
                        break;

                    case 8:
                        webView.loadUrl("http://pixelay.com/ueber-uns/");
                        break;

                }


                return false;

            }
        });