动态更改ViewpagerIndicator Fragment Content Android

时间:2012-11-14 11:49:46

标签: android android-viewpager fragment viewpagerindicator

我正在使用viewpagerindicator处理应用程序。

在我的主要活动中有viewpagerindicator,我分离了一个做一些计算的线程并更新了一个活动的实例变量mString。我想用mString更新viewpagerindicator中的片段。但是,我似乎无法弄清楚到达片段的最佳方式。

有没有人知道任何与此类似的好样品?

2 个答案:

答案 0 :(得分:1)

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

E.g。创建一个名为DynamicDataResponseHandler的接口,如下所示:

public interface DynamicDataResponseHandler {
   public void onUpdate(Object data);
}

然后在Fragment中,按如下方式实现该接口:

private class MyStringDataResponseHandler implements DynamicDataResponseHandler {
   @Override
   public void onUpdate(Object object) {
      mYourTextView.setText((String)object);
   }
}

然后,您的Fragment可以在其​​onCreate中实例化MyStringDataResponseHandler对象,并通过FragmentActivity中的方法将其传递给FragmentActivity,如:

private MyStringDataResponseHandler mMyStringDataResponseHandler;

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

无论你在Handler中获得mString的值,都可以这样做:

if(mMyStringDataResponseHandler != null) {
   mMyStringDataResponseHandler.onUpdate(mString);
}

对Callbacks的概念进行一些阅读,以便更好地理解我在上面做的事情以及其他可以使用它们的方法。

答案 1 :(得分:1)

你想在ViewPager启动后更新片段的UI,我是否清楚了?

好的,在这种情况下

  1. 您应该在自定义片段中添加公共方法。
  2. 在您的活动中找到片段。
  3. 计算完成后调用该方法。
  4. 问题与this one相同。