从CountDownTimer更新为一个TextView的多个实例文本(Updating text

2019-10-29 05:33发布

我试图更新一个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方法我做到以下几点:

  1. 查找在我前面提到的HashMap中的ID TextView的。
  2. 更新TextViews文本。

现在,这似乎在某种程度上工作。 因为如果我向上和向下滚动我可以看到,一旦它被显示在屏幕上再上TextViews文本将被更新。 但是,如果它已经在屏幕上显示它并没有更新的TextView。 我曾试着打电话给TextView.invalidate()和TextView.postInvalidate()。 在我绝望我甚至尝试创建一个处理程序,将发布一个Runnable这将尝试更新的TextView。

但似乎没有奏效。 有什么想法,我怎么可能能够更新的TextView?

TL DR:我需要知道我可以更新列表项中一个TextView - 这是一种活动的一部分 - 从一个BaseAdapter创建CountDownTimer。

对不起,文字的壁^^”

Answer 1:

您应该更新了“data'of适配器,该数据应包含将在每个TextView的显示每个项目的内容。

然后调用notifydatasetchanged()在adaprer。



文章来源: Updating text for multiple instances of a TextView from a CountDownTimer