2011-11-21 45 views
1

[Update解决方案] 当前活动参考帖子中的链接Android的启动与不同的意图行动

ViewPager PagerAdapter not updating the View

public void onSomeButtonClicked(View view) { // registered to Button's android:onClick in the layout xml file 
    Log.w(TAG,"Some button clicked !!"); 
    getIntent().setAction(IntentManager.Intents.ACTION_SPAWN_LIST_BY_SOMETHING); 

    mViewPager.getAdapter().notifyDataSetChanged(); 
} 

// And inside my PagerAdapter 
    @Override 
    public int getItemPosition(Object object) { 
     return 0; 
    } 

修好了我所有的问题,我只是用Intent.setAction()。

[更新以下邮政]

我的问题是我有一个ViewPager PagerAdapter在我的主要活动。点击3个按钮中的一个,任何特定的意图都将被触发(我用意图,我可以只用状态变量,只是我通过一些意向的Uri)。会发生什么事,我做

public void onSomeButtonClicked(View view) { // registered to Button's android:onClick in the layout xml file 
    Log.w(TAG,"Some button clicked !!"); 
    getIntent().setAction(IntentManager.Intents.ACTION_SPAWN_LIST_BY_SOMETHING); 

    mViewPager.getAdapter().notifyDataSetChanged(); 
} 

这就是为什么我猜测也许我应该只是做startActivity再次,与同一活动的新意向行动。

产生一个新的活动,我将不得不重绘在基本上相同的代码布局的所有其他视图,在当前活动的大部分。

此处有任何建议吗?请帮助

[原帖]

我有一个PagerAdapter,并在我的主要活动3个按钮。此活动从主启动器进入。

当我按下任意一个按钮时,Intent Action被改变。

我的问题:

  1. 的改变的Intent行动反映了ViewPager一些改变的看法,因此,只有视图更新does_not生成一个新的活动。

我应该采取什么方法来完成这项任务?

我可以使用startActivity()和不同的按钮点击Intent动作启动currentActivity吗?

还是有没有其他有效的方法在android中做到这一点?

[无需代码,逻辑只是解释/法就足够]提前

感谢

+0

我对这个问题有点困惑,如果你只是想更新你的应用程序的某个状态,那么你可以调用一个方法,或者如果你试图移动到另一个活动,你使用一个意图开始一项新的活动。 –

回答

1

如果你说你要使用startActivity再次弹出相同活动,其不工作,这可能是因为你在Android清单中设置了类似singleTop的东西。

如果您询问您是否应该使用意图更改您的活动的状态,则答案是“视情况而定”。如果用户希望后退按钮将您的应用程序恢复到之前的状态(而不是返回主屏幕),那么它可能是您的不错选择。但是,如果是这样的话,我会问为什么不只是做两个不同的活动?否则,请按照Dan S的建议,在用户与其交互时更新活动状态。

1

您可以随时使用onNewIntent()钩子。在您的活动中执行以下操作:

protected void onNewIntent(Intent intent){ 
    //change your activity based on the new intent 
} 

请确保在清单中将活动设置为singleTop。现在,每当调用startActivity时,将执行onNewIntent()。另请注意,根据文档:

请注意,getIntent()仍然返回原始意图。你可以使用setIntent(Intent)将它更新到这个新的Intent。