android - 动态改变ViewpagerIndicator Fragment Content Android

标签 android android-viewpager fragment viewpagerindicator

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

在我具有 viewpagerindicator 的主要 Activity 中,我分拆了一个执行一些计算并更新该 Activity 的实例变量 mString 的线程。我想用 mString 更新 viewpagerindicator 中的 fragment 。但是,我似乎无法找出到达 fragment 的最佳方法。

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

最佳答案

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

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

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

然后在您的 Fragment 中,按如下方式实现该接口(interface):

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);
}

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

关于android - 动态改变ViewpagerIndicator Fragment Content Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13378264/

相关文章:

java - 非常简单的viewPager2

android - 显示 DialogFragment 导致 IllegalStateException

java - RSS AsyncTask - ArrayAdapter 未定义

javascript - 如何使用钩子(Hook)将值发送到 React Native 中的另一个屏幕?

android - Android 中的 WebRTC

android - 如何在 Android 的 View 寻呼机页面中使用滑动手势?

android - JUnit 版本 3.8 或更高版本预计在 android studio 4.1 上

android - 一次使用半滑动viewpager android的两个 ListView

java - 在不知道类类型的情况下调用对象的方法

android - 谷歌地图 fragment 在 N​​estedScrollView 内滚动