gpt4 book ai didi

java - Android - 圆形阵列显示

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:39:11 24 4
gpt4 key购买 nike

我有一系列城市 -

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

我怎样才能实现这个功能。
这更像是一个编程问题。
任何帮助将不胜感激。

最佳答案

您只需要更改方法中的索引:

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等达到长度,实际索引将自动变为0。对于小于长度的值,它会正常运行,就好像没有 modulus 运算符一样。

这样您就可以创建一个包含任意数量项目的循环。因此,这是一个通用且可扩展的解决方案。

关于java - Android - 圆形阵列显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14951391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com