Java 如何打开动态创建的布局?

Java 如何打开动态创建的布局?,java,android,Java,Android,我已经编写了一个布局(即带有工具栏的LinearLayout,下面的代码只是一个示例),我想将其加载到一个新窗口中,就像我启动新的意图一样,正确的方法是什么 protected Void startNewLayout() { LinearLayout myLayout= new LinearLayout(context); Toolbar toolbar = new Toolbar(context); toolbar.setTitle("Page#1");

我已经编写了一个布局(即带有工具栏的LinearLayout,下面的代码只是一个示例),我想将其加载到一个新窗口中,就像我启动新的意图一样,正确的方法是什么

protected Void startNewLayout() {       
    LinearLayout myLayout= new LinearLayout(context);
    Toolbar toolbar = new Toolbar(context);
    toolbar.setTitle("Page#1");
    myLayout.addView(toolbar);
    TextView text = new TextView(context);
    text.setText("Hello World!");
    myLayout.addView(text);
    //open myLayout
}

您可能想了解一下Android中的概念。例如,它们可以显示为对话框或活动。

首先必须创建布局,然后必须创建布局参数。构造函数接受两个参数:宽度和高度。我们将两者都设置为匹配父项。然后,调用setContentView方法。LinearLayout和LayoutParams作为参数传递给它。这意味着LayoutParams中具有布局属性的LinearLayout将成为根元素

您必须再次使用width=wrap\u content和height=wrap\u content属性创建LayoutParams对象。现在,如果将此对象指定给其中一个视图,则此视图的宽度和高度将由其内容定义

在此之后,我们创建一个工具栏,更新其文本,将其设置为以前创建的LayoutParams对象,并使用addView(View child)方法将其添加到LinearLayout。TextView也会发生同样的情况

因此,您的最终代码将如下所示

protected Void startNewLayout() {   

    LinearLayout myLayout = new LinearLayout(context);
    myLayout.setOrientation(LinearLayout.VERTICAL);

    // creating LayoutParams  
    LayoutParams layoutParam = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); 
    // set LinearLayout as a root element of the screen 
    setContentView(myLayout, layoutParam);    

    LayoutParams lpView = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

    Toolbar toolbar = new Toolbar(context);
    toolbar.setTitle("Page#1");
    toolbar.setLayoutParams(lpView);
    myLayout.addView(toolbar);

    TextView text = new TextView(context);
    text.setText("Hello World!");
    text.setLayoutParams(lpView);
    myLayout.addView(text);


}