我试图开始一个在MaterielDialog中的活动,而这个活动是在片段中。
这是我的片段部分:
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);
}
我收到此错误:
引起:java.lang.IllegalStateException:指定的子节点已经有父节点。您必须先在孩子的父母身上调用removeView()。
我正在使用android注释。我已经在堆栈上尝试了很多问题,但没有人工作。
先谢谢
答案 0 :(得分:1)
使用回调。在片段中实现一个接口:
public interface OnChangeActivityListener{
void changeActivity()
}
然后在您的活动中实现界面。在changeActivity()
方法中实现您创建新意图。意图和活动管理应该在活动级别进行,而不是在碎片级别进行。
更多信息: http://developer.android.com/training/basics/fragments/communicating.html
答案 1 :(得分:0)
您是否在void setSubject(String LinkTo)
调用中的setContentView之前设置了内容视图?如果你这样做,你不需要再次设置它。
看起来您已经在Activity的布局中拥有了webview。