我正在使用 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/