更新Fragment中的TextView以保持一致性

时间:2014-02-25 16:29:03

标签: java android android-layout android-fragments

我正在尝试构建一个测验应用程序,在用户回答问题时保持得分。我还使用Google的ViewPager屏幕幻灯片,使用Fragments来保留不同的个人网页(代码:http://developer.android.com/training/animation/screen-slide.html)。我有一个TextView@id/txtvw_score),用于在整个测验会话中保持得分。此txtvw_score位于fragment_screen_slide_page.xml

我遇到的问题是,为了访问所说的TextView,我必须在ScreenSlidePageFragment的{​​{1}}方法中执行此操作。但是,因为Android会针对每个新onCreateView()调用此onCreateView()方法两次,所以它会使Fragment的分数完全过时。例如,第1页将显示当前分数,然后第2页将显示第0页(未初始化的分数),然后第3页将显示第1页的分数等。

我正在使用TextView来更新实际分数。当我使用SharedPreferences时,我已经能够完美地记录得分。这仅用于确认目的,因为我实际上并不想使用ActionBar

问题的进一步复杂化是我无法在ActionBar的{​​{1}}方法中更新TextView。我也尝试调用TextView并将其从Fragment更改(来源:How to change fragment's textView's text from activity),但无论我做了什么,最终都会以onCreate()结束。

所以,长话短说,如何在所有ScreenSlideActivity中保持NullPointerException的内容一致? (这对我来说非常重要,因为在将来,我想使用TextView作为计时器的显示,这肯定需要保持一致。)

编辑(添加简化代码):

fragment_screen_slide_page.xml

Fragments

ScreenSlidePageFragment.java

TextView

所有代码都经过简化,以显示问题所针对的问题。所有已删除的代码都已经过测试,直到此时它们才能正常运行。

0 个答案:

没有答案