Android的启动与不同的意图行动
[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被改变。
我的问题:
- 的改变的Intent行动反映了ViewPager一些改变的看法,因此,只有视图更新does_not生成一个新的活动。
我应该采取什么方法来完成这项任务?
我可以使用startActivity()和不同的按钮点击Intent动作启动currentActivity吗?
还是有没有其他有效的方法在android中做到这一点?
[无需代码,逻辑只是解释/法就足够]提前
感谢
如果你说你要使用startActivity再次弹出相同活动,其不工作,这可能是因为你在Android清单中设置了类似singleTop的东西。
如果您询问您是否应该使用意图更改您的活动的状态,则答案是“视情况而定”。如果用户希望后退按钮将您的应用程序恢复到之前的状态(而不是返回主屏幕),那么它可能是您的不错选择。但是,如果是这样的话,我会问为什么不只是做两个不同的活动?否则,请按照Dan S的建议,在用户与其交互时更新活动状态。
您可以随时使用onNewIntent()钩子。在您的活动中执行以下操作:
protected void onNewIntent(Intent intent){
//change your activity based on the new intent
}
请确保在清单中将活动设置为singleTop
。现在,每当调用startActivity时,将执行onNewIntent()
。另请注意,根据文档:
请注意,getIntent()仍然返回原始意图。你可以使用setIntent(Intent)将它更新到这个新的Intent。
我对这个问题有点困惑,如果你只是想更新你的应用程序的某个状态,那么你可以调用一个方法,或者如果你试图移动到另一个活动,你使用一个意图开始一项新的活动。 –