首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环数组显示

循环数组显示
EN

Stack Overflow用户
提问于 2013-02-19 06:45:51
回答 3查看 1.2K关注 0票数 0

我有很多城市-

代码语言:javascript
复制
String[] cities = { "Riyadh", "Jubail", "Jeddah", "Madinah",
        "Tabuk","Bangalore","Chennai","Pune" };

我将它们显示在一个具有三文本视图(固定)的列表中。

这意味着我们一次要展示三个城市。

这里是显示城市的方法。

代码语言:javascript
复制
void setUpCityList(int iCity) {
    tvOneCity.setText(cities[iCity]);
    tvTwoCity.setText(cities[iCity + 1]);
    tvThreeCity.setText(cities[iCity + 2]);
}

当用户向上滑动时,我正在递增索引,而用户向下滑动则是递减索引的

代码语言:javascript
复制
void swipeUp()
{
    iCity++;
    setUpCityList(iCity);
}

void swipeDown()
{
    iCity--;
    setUpCityList(iCity);
}

我想给这个列表一个无休止的滚动功能。

这意味着如果用户向上滑动--列表到达最后三个元素,则应该再次从第一个元素开始。

例子-

  1. 当前显示-最后三个元素-“班加罗尔”、“钦奈”、“浦那”
  2. 向上滑动--显示应该是- Chennai,Pune,Riyadh

如何实现此功能。

这更像是一个编程问题。

任何帮助都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-19 06:55:07

只需更改方法中的索引:

代码语言:javascript
复制
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]);
}

一旦iCityiCity + 1等到达length,实际索引将自动成为0。对于小于长度的值,它将正常运行,就像没有modulus运算符一样。

这样,您可以创建一个循环的项目,你想要的。因此,它是一个广义的、可扩展的解决方案。

票数 4
EN

Stack Overflow用户

发布于 2013-02-19 06:53:50

代码语言:javascript
复制
void swipeUp()
{   if(iCity == cities.length()){
        iCity = 0;
        setUpCityList(iCity++);

    }
    else{
        iCity++;
        setUpCityList(iCity);
    }
}

试试这样的东西。

票数 0
EN

Stack Overflow用户

发布于 2013-02-19 06:59:14

你可以试试这个:

代码语言:javascript
复制
void swipeUp()
{
iCity++;
if ( iCity > urMaxlength){
   iCity =0;
}
setUpCityList(iCity);
}

void swipeDown()
{
iCity--;
if ( iCity < urMinlength){
   iCity =urMaxlength;
}
setUpCityList(iCity);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14951391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档