我有很多城市-
String[] cities = { "Riyadh", "Jubail", "Jeddah", "Madinah",
"Tabuk","Bangalore","Chennai","Pune" };我将它们显示在一个具有三文本视图(固定)的列表中。
这意味着我们一次要展示三个城市。
这里是显示城市的方法。
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);
}我想给这个列表一个无休止的滚动功能。
这意味着如果用户向上滑动--列表到达最后三个元素,则应该再次从第一个元素开始。
例子-
如何实现此功能。
这更像是一个编程问题。
任何帮助都将不胜感激。
发布于 2013-02-19 06:55:07
只需更改方法中的索引:
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运算符一样。
这样,您可以创建一个循环的项目,你想要的。因此,它是一个广义的、可扩展的解决方案。
发布于 2013-02-19 06:53:50
void swipeUp()
{ if(iCity == cities.length()){
iCity = 0;
setUpCityList(iCity++);
}
else{
iCity++;
setUpCityList(iCity);
}
}试试这样的东西。
发布于 2013-02-19 06:59:14
你可以试试这个:
void swipeUp()
{
iCity++;
if ( iCity > urMaxlength){
iCity =0;
}
setUpCityList(iCity);
}
void swipeDown()
{
iCity--;
if ( iCity < urMinlength){
iCity =urMaxlength;
}
setUpCityList(iCity);
}https://stackoverflow.com/questions/14951391
复制相似问题