如何使用其他活动的意图打开选项卡式活动中的部分?

时间:2015-12-06 12:29:58

标签: android android-intent sidebar

我有一个标签式活动,侧边栏有4个部分。

当我从另一个活动对此活动进行Intent时,我希望它在第四部分打开,而不是在第一部分打开(默认)。

如何将其更改为在第四部分打开?

2 个答案:

答案 0 :(得分:0)

试试这个:

当你从另一个活动发送一个意图时,将一个布尔包与该意图放在一起,当你在活动中接收意图时检查bundle是否为true,如果是,则打开你的第四个部分。

您的发送活动

Bundle bundle=new Bundle();
bundle.putBoolean("fourthSection",true);

startActivity(new Intent(currentActivity.this,otherActivity.class).putExtras(bundle));

您的接收活动

Bundle bundle=getIntent.getExtras();
if(bundle.getBoolean("fourthSection")){
//go to your fourth section
}

答案 1 :(得分:0)

这就是你要做的事情:

public class OtherActivityThatHasYourTabs ... {
  public static final String TAB_INDEX_KEY = "tab_index";
  ...
}  

拥有一个名为TAB_INDEX_KEY的密钥。这是您获取和设置要在这两个活动之间传递的选项卡索引的方式。

在你的"当前"活动,这样做:

Intent otherActivity = new Intent(CurrentActivity.this,OtherActivityThatHasYourTabs.class);
otherActivity.putExtra(OtherActivityThatHasYourTabs.TAB_INDEX_KEY,4);
startActivity(otherActivity);  

OtherActivityThatHasYourTabs中,您可以检索用于通过Intent启动它的getIntent()。所以,你这样做:

Intent intent = getIntent();
Bundle extras = intent.getExtras();
int tabIndex = extras.getInt(TAB_INDEX_KEY);
if( tabIndex != 0 ){
  yourMethodToDisplayTabAtIndex( tabIndex ); 
}  

1开始编制索引,因为如果无法找到传递给getInt()的密钥,则0会返回getInt()

使用int可以提供更高的清洁度和灵活性,因为您只管理一个密钥,如果您添加了更多标签,则可以增加索引。