让我试着把我面临的情况弄清楚。我有一个从 XML 文件中检索到的标题列表,它随机显示在 ViewPager 的 TextView 中。
在使用 setText 在 TextView 中设置它之前,我已经打印了标题列表和使用 System.out.println 来查看标题的随机标题。
问题是,随机化的标题没有显示在 ViewPager 的当前视图中,它显示在下一个视图中,当我滑动时,同样的事情发生了。在当前视图中,显示的标题与随机标题不同。
我需要文本在当前视图中正确显示,因为当用户单击它时,它应该打开一个页面,其中显示在视图中的文本。
任何人都知道为什么我会遇到这个问题,我该如何解决?
//Code Snippet is from a PagerAdapter
try{
randomNo = getRandomNumber(nl.getLength());
System.out.println("AMOUNT OF ARTICLES : " + nl.getLength());
System.out.println("RANDOM NUMBER : " + randomNo);
showTitle = texts.get(randomNo);
showArticle = urls.get(randomNo);
System.out.println("RANDOM ARTICLE TITLE : " + showTitle);
text5.setText(showTitle);
}
catch(Exception e)
{
e.printStackTrace();
}
更新 我弄清楚了为什么文本不能正确显示。
例如,view1 显示 text1 并加载文章 1,view2 显示 text2 并加载文章 2,等等。但是,因为它在第一次运行时加载了所有文章链接和标题,所以它根据随机顺序显示随机标题。
标题1 标题2
链接1 链接2
所以,View1 实际上得到了 link2(最新的随机链接),但仍然停留在 text1 上。每次我滑动时,它都会再次随机化,导致标题和链接混乱。
根据项目要求找到了一种解决方法。我在 Fragment 类而不是 ViewPagerAdapter 中运行随机代码,这样它只加载一次随机代码,这有助于在每个视图中显示相同的标题和链接。我从 Fragment 类中检索了标题并将其显示在我的适配器中。这样,每个视图都显示相同的标题和链接,直到下一次运行。