java 刷新物理视图_java – 刷新片段中的视图

我搜索了许多这样的问题,但没有在任何一个中找到我的答案。

我有一个活动,通过操作栏可以访问3个选项卡。我通过添加3个片段来实现这一点,这些片段使我提出了扩展视图类的自定义视图。

在数据库更改的时刻,我尝试通过调用invalidate()/ postinvalidate()来刷新我的标签中的视图,但这不起作用。调用该片段的onCreateView同样适用于我认为的许多其他选项。

然而,当我去另一个标签返回时,已经做出了改变,并且我的观点被更新,因为它应该是。

如何模拟与其他选项卡相同的事情?发生什么事我试图看看Fragment的生命周期(试图调用onCreateView())来计算出来,但是它不想像它那样刷新/重画。

数据正确加载,当我更改为另一个选项卡时数据更改。

我删除了一些代码,因为它不再相关。我实现了Cursorloaders而不是我自己的Observer模式来通知更改。这是我现在的主要活动。

问题是如果我想重新绘制这些片段中的视图,该怎么办?如果我应用fragmentObject.getView()。invalidate()它不工作。我有与以前相同的问题,但现在我的Observer通知数据库中的更改正确地与加载程序实现。

public class ArchitectureActivity extends Activity implements LoaderManager.LoaderCallbacks {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

ActionBar actionbar = getActionBar();

actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

ActionBar.Tab EditTab = actionbar.newTab().setText("Edit");

ActionBar.Tab VisualizeTab = actionbar.newTab().setText("Visualize");

ActionBar.Tab AnalyseTab = actionbar.newTab().setText("Analyse");

Fragment editFragment = new EditFragment();

Fragment visualizeFragment = new VisualizeFragment();

Fragment analyseFragment = new AnalyseFragment();

EditTab.setTabListener(new MyTabsListener(editFragment));

VisualizeTab.setTabListener(new MyTabsListener(visualizeFragment));

AnalyseTab.setTabListener(new MyTabsListener(analyseFragment));

actionbar.addTab(EditTab);

actionbar.addTab(VisualizeTab);

actionbar.addTab(AnalyseTab);

ArchitectureApplication architectureApplication = (ArchitectureApplication)getApplicationContext();

architectureApplication.initialize();

getLoaderManager().initLoader(0, null, this);

getLoaderManager().initLoader(1, null, this);

}

public Loader onCreateLoader(int id, Bundle args) {

if (id == 0){

return new CursorLoader(this, GraphProvider.NODE_URI , null, null, null, null);

} else if (id == 1){

return new CursorLoader(this, GraphProvider.ARC_URI , null, null, null, null);

}

return null;

}

public void onLoadFinished(Loader loader, Cursor cursor) {

// Reloading of data, actually happens because when switching to another tab the new data shows up fine

Log.e("Data", "loaded");

}

public void onLoaderReset(Loader loader) {

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值