首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态改变ViewpagerIndicator分片内容

动态改变ViewpagerIndicator分片内容
EN

Stack Overflow用户
提问于 2012-11-14 19:49:46
回答 2查看 1.3K关注 0票数 1

我正在开发一个使用viewpagerindicator的应用程序。

在我的主活动中,具有viewpagerindicator,我派生了一个线程,该线程执行一些计算并更新活动的实例变量mString。我想用mString更新视图页面指示器中的片段。然而,我似乎找不到到达碎片的最好方法。

有没有人知道有什么好的样本可以做类似的事情?

EN

回答 2

Stack Overflow用户

发布于 2012-11-24 15:07:59

在你的片段中创建一个回调对象,用你的FragmentActivity注册它。如果已经在FragmentActivity中设置了mString,那么您可以通过回调立即返回它,否则,当计算线程完成时,它可以通过回调返回字符串。回调方法应该做片段需要对字符串做的任何事情,例如设置TextView的文本。

例如,创建一个名为DynamicDataResponseHandler的接口,如下所示:

代码语言:javascript
复制
public interface DynamicDataResponseHandler {
   public void onUpdate(Object data);
}

然后在您的片段中,实现该接口,如下所示:

代码语言:javascript
复制
private class MyStringDataResponseHandler implements DynamicDataResponseHandler {
   @Override
   public void onUpdate(Object object) {
      mYourTextView.setText((String)object);
   }
}

然后,您的片段可以在其onCreate中实例化MyStringDataResponseHandler对象,通过FragmentActivity中的方法将其传递给FragmentActivity,如下所示:

代码语言:javascript
复制
private MyStringDataResponseHandler mMyStringDataResponseHandler;

public void registerMyStringDataResponseHandler (DynamicDataResponseHandler callback) {
   mMyStringDataResponseHandler = callback;
   if(mString != null) {
      mMyStringDataResponseHandler.onUpdate(mString);
   }
}

无论您在处理程序中获取mString的值,执行以下操作:

代码语言:javascript
复制
if(mMyStringDataResponseHandler != null) {
   mMyStringDataResponseHandler.onUpdate(mString);
}

做一些关于回调的概念的阅读,以更好地理解我上面所做的事情以及你可以使用它们的其他方式。

票数 1
EN

Stack Overflow用户

发布于 2012-11-24 16:38:58

您想在启动后更新ViewPager中的分片的UI,我说清楚了吗?

好的,在这种情况下

你应该在你的自定义片段中添加一个公共方法。在计算完成后,在你的Activity.

  • Invoke中找到你的片段

这个问题对于this one也是一样的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13378264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档