您好我有一个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;
}
});
....
答案 0 :(得分:2)
您忘了在break
expandableList.setOnChildClickListener
声明
以下是您忘记添加case
break
case 2
强> case 3
强> case 4
<强> case 5
强>
<强> case 6
强>
case 7
强> 答案 1 :(得分:1)
当您检查&#39; {{case 3
,case 4
,case 5
,case 6
和case 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;
}
});