我试图更新一个TextView的文本时,有一个问题。
我在我所创建的布局与空的ListView一个MainActivity。 使用自定义listItems中填补这一ListView控件我已经创建了一个获取信息填写到listItems中也充满装入listItems中的数据的自定义BaseAdapter的自定义AsyncTaskLoader。
这部分没有任何错误,它只是完美。
然而,试图从在ListView一个ListItem更新一个TextView的文本时,我有一个问题。 你看,我创建了一个自定义的CountDownTimer这需要所谓的OnTickListener作为构造函数的参数的接口。 我每次都一个独特的ID,我创建一个列表项,我用它来存储在一个HashMap是列表项的TextView的,并存储在一个HashMap的CountDownTimer。 这些包含HashMap创建并保持自定义BaseAdapter里面。
该BaseAdapter还实现OnTickListener。
每次MyCountDownTimer电话OnTick它调用构造函数提供给它的OnTickListener,并传递两个参数:INT ID和字符串文本。
这将调用OnTickListener的唯一方法BaseAdapters implementaton:公共无效OnTick(INT ID,字符串文本)。
在onTick方法我做到以下几点:
- 查找在我前面提到的HashMap中的ID TextView的。
- 更新TextViews文本。
现在,这似乎在某种程度上工作。 因为如果我向上和向下滚动我可以看到,一旦它被显示在屏幕上再上TextViews文本将被更新。 但是,如果它已经在屏幕上显示它并没有更新的TextView。 我曾试着打电话给TextView.invalidate()和TextView.postInvalidate()。 在我绝望我甚至尝试创建一个处理程序,将发布一个Runnable这将尝试更新的TextView。
但似乎没有奏效。 有什么想法,我怎么可能能够更新的TextView?
TL DR:我需要知道我可以更新列表项中一个TextView - 这是一种活动的一部分 - 从一个BaseAdapter创建CountDownTimer。
对不起,文字的壁^^”