我有一系列城市 -
String[] cities = { "Riyadh", "Jubail", "Jeddah", "Madinah",
"Tabuk","Bangalore","Chennai","Pune" };
我将它们显示在三个textview (已修复)的列表中。
这意味着我们将一次显示三个城市。< br />以下是显示城市的方法。
void setUpCityList(int iCity) {
tvOneCity.setText(cities[iCity]);
tvTwoCity.setText(cities[iCity + 1]);
tvThreeCity.setText(cities[iCity + 2]);
}
当用户向上滑动时,我递增索引并且用户向下滑动我递减索引。
void swipeUp()
{
iCity++;
setUpCityList(iCity);
}
void swipeDown()
{
iCity--;
setUpCityList(iCity);
}
我想给这个列表一个无尽的滚动功能。
这意味着如果用户向上滑动 - 并且列表到达最后三个元素,它应该再次从第一个元素开始。
示例 -
1.当前显示 - 最后三个元素 - “Bangalore”,“Chennai”,“Pune”
2.向上滑动 - 显示应该是 - Chennai,Pune,Riyadh
我如何实现此功能。
这更像是一个编程问题
任何帮助将受到高度赞赏。
答案 0 :(得分:4)
您只需要更改方法中的索引:
void setUpCityList(int iCity) {
int length = cities.length;
tvOneCity.setText(cities[iCity % length]);
tvTwoCity.setText(cities[(iCity + 1) % length]);
tvThreeCity.setText(cities[(iCity + 2) % length]);
}
iCity
或iCity + 1
等等达到length
后,实际索引将自动变为0
。对于小于长度的值,它将表现正常,就像没有modulus
运算符一样。
通过这种方式,您可以创建所需项目的循环。因此,它是一个通用且可扩展的解决方案。
答案 1 :(得分:0)
void swipeUp()
{ if(iCity == cities.length()){
iCity = 0;
setUpCityList(iCity++);
}
else{
iCity++;
setUpCityList(iCity);
}
}
尝试这样的事情。
答案 2 :(得分:0)
你可以试试这个:
void swipeUp()
{
iCity++;
if ( iCity > urMaxlength){
iCity =0;
}
setUpCityList(iCity);
}
void swipeDown()
{
iCity--;
if ( iCity < urMinlength){
iCity =urMaxlength;
}
setUpCityList(iCity);
}