那么深层链接到片段是否可能?因此,我的主要活动会根据用户点击的内容启动不同的片段。
因此,我使用清单文件中的intent过滤器为我的主要活动创建了一个深层链接。但你怎么会这样做片段?
任何帮助都会有所帮助
感谢。
答案 0 :(得分:4)
你当然可以做到这一点。您需要解析活动中的意图并使用片段管理器填充您希望的片段。将Action和Fragment替换为您自己的。
@Override
protected void onNewIntent(final Intent intent) {
super.onNewIntent(intent);
parseIntent(intent);
}
private void parseIntent(Intent intent) {
final String action = intent.getAction();
if (action != null) {
if (Action.<ONE>.equals(action)) {
FragmentManager fm = getFragmentManager();
Fragment<ONE> fragment = (Fragment<ONE>) Fragment.instantiate(this,
Fragment<ONE>.class.getCanonicalName(),
getIntent().getExtras());
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.fragment_id, fragment);
ft.commit();
} else if (Action.<TWO>.equals(action)) {
FragmentManager fm = getFragmentManager();
Fragment<TWO> fragment = (Fragment<TWO>) Fragment.instantiate(this,
Fragment<TWO>.class.getCanonicalName(),
getIntent().getExtras());
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.fragment_id, fragment);
ft.commit();
}
}
}
动作只是对于给定意图应该是唯一的字符串。它们可以是任何东西。像:
“myapp.image_included”或 “myapp.link_url”等
答案 1 :(得分:0)
是的,您可以在活动中调用片段(从哪个活动转到片段类) - 在 onCreate 方法中调用
Intent appLinkIntent = getIntent();
String appLinkAction = appLinkIntent.getAction();
Uri appLinkData = appLinkIntent.getData();
String recipeId = appLinkData.getLastPathSegment();
if(recipeId.equals("mybag")){
call fragment 1(i am sending link like this -(example)
www.google.com/mybag)
}else{
call fragment 2
}