从片段开始 activity

Start activity from fragment

我正在尝试启动一个 activity,它在 MaterielDialog 中,而这个在 Fragment 中。

这是我的片段部分:

Intent i = new Intent(getActivity(), SubjectViewActivity_.class);
i.putExtra("subject", projects.getFileurl());
startActivity(i);

并且在 SubjectViewActivity 中:

@UiThread
void setSubject(String LinkTo) {
    Toast.makeText(getApplicationContext(), LinkTo, Toast.LENGTH_LONG).show();
    webview.getSettings().setJavaScriptEnabled(true);
    webview.loadUrl(LinkTo);
    setContentView(webview);
}

@AfterViews
void init() {
    Intent intent = getIntent();
    String url = intent.getExtras().getString("subject");
    setSubject(url);
}

我收到这个错误:

Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

我正在使用 android 注释。我在堆栈上尝试了很多问题,但没有一个有效。

提前致谢

使用回调。在片段中实现一个接口,例如:

public interface OnChangeActivityListener{
    void changeActivity()
}

然后在您的 activity 中实现接口。在 changeActivity() 方法中实现您创建的新意图。意图和 Activity 管理应该发生在 Activity 级别,而不是片段级别。

更多信息: http://developer.android.com/training/basics/fragments/communicating.html

您是否在 void setSubject(String LinkTo) 调用中的 setContentView 之前设置了内容视图?如果你这样做了就不需要再设置了。

您的 Activity 布局中似乎已经有了 webview。