Java 开关箱功能仅打开最后一项
嗨,我有一个导航菜单,它与开关盒功能一起工作。标题组组件定义为“i”。子菜单组件定义为“il”。我正试图打开一个子菜单,但它只打开项目3上最后定义的链接。为什么子菜单只打开最后一个链接?我的错误在哪里?请帮忙 这就是功能:Java 开关箱功能仅打开最后一项,java,android,webview,navigation,Java,Android,Webview,Navigation,嗨,我有一个导航菜单,它与开关盒功能一起工作。标题组组件定义为“i”。子菜单组件定义为“il”。我正试图打开一个子菜单,但它只打开项目3上最后定义的链接。为什么子菜单只打开最后一个链接?我的错误在哪里?请帮忙 这就是功能: prepareListData(); mMenuAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild, expandableList); // sett
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;
}
});
....
您忘记在父案例之后添加
中断
:
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;
}
});
您忘记在
可扩展列表中添加break
语句。setOnChildClickListener
以下是一些您忘记添加中断的案例
案例2
案例3
案例4
案例5
案例6
案例7
i
”值时,情况3
、情况4
、情况5
、情况6
和情况7
没有中断语句。问题是在这些情况下,当它遍历i1
时,如果i1
与任何嵌套情况都不匹配,那么它将遍历下一个情况
因此,在每个嵌套的
开关盒之后放置break
,这将解决您的问题。调试您的代码,如果内部开关没有使用任何设置的子值,它将转到下一个例子。即使这样,您在那里的中断是针对内部开关的,而不是针对外部开关的。您是否检查了i1
”值?如果是,它是否有值!=4
?外壳2至7的外部开关缺少断路器clause@Nilu谢谢我改变了它,它成功了:)@ADM Iam在Android Studio上是新的,我不知道:/但现在我要做了。谢谢你的帮助me@SinanKara很高兴帮助你,不客气。很高兴我能帮助你。您可以接受答案或投票。:)