【发布时间】:2013-07-28 17:51:55
【问题描述】:
我有一个接收两个字符串数组的类。这些数组包含每个文件的文件名和标题。我正在设置一个 ViewPager,但是因为这些数组可以根据应用程序中的部分而改变,所以我不能使用 switch 语句。 ViewPager 显示从我的资产文件夹中的文件收集数据的片段。
场景 A:
- fileString[] 的长度为 4
-
fileTitleString[] 的长度为 4
@Override public Fragment getItem(int position) { Fragment fragment = new myFragment(FILE_PATH, fileString[SELECTION]); switch (position) { case 0: fragment = new myFragment(FILE_PATH, fileString[0]); break; case 1: fragment = new myFragment(FILE_PATH, fileString[1]); break; case 2: fragment = new myFragment(FILE_PATH, fileString[2]); break; case 3: fragment = new myFragment(FILE_PATH, fileString[3]); break; } return fragment; } @Override public CharSequence getPageTitle(int position) { String title = ""; switch (position) { case 0: title = " " + fileTitleString[0] + " "; break; case 1: title = " " + fileTitleString[1] + " "; break; case 2: title = " " + fileTitleString[2] + " "; break; case 3: title = " " + fileTitleString[3] + " "; break; } return title;}
场景 B: - fileString[] 的长度为 5 - fileTitleString[] 的长度为 5
我知道 switch 子句所做的只是设置一个新片段,但 ViewPager 需要知道之前和之后的内容,以便您可以在片段之间滑动。
【问题讨论】:
-
您是否只想将
switch语句替换为执行相同操作的更简单的代码?还是您的问题还有更多(涉及您在上一段中提到的“之前和之后”问题)? -
提示:位置和数组索引。 :)
-
我只是想替换 switch 语句,这样代码就可以确定文件路径中的文件数量并生成那么多片段。尝试了您的代码 Ted,但遇到了问题,并且像以前一样让数组越界异常。对于未来的人们,请参阅 Sipka 的回答 效果很好,很容易理解!谢谢大家!和 Qberticus 我非常感谢您的提示 =]
标签: android android-fragments android-viewpager switch-statement