布局中的Android布局,单独的类处理它们的输入?

时间:2010-12-22 21:57:21

标签: android xml layout

嘿所有, 我在Java中创建了一个使用Jpanels中的Jpanels的程序。这方面的一个例子是具有包含按钮的侧视图,该按钮在按下时改变主视图。主视图还有可用于改变自身的按钮。

我想在android上重新创建它。我的布局是从xml设置的,侧面板包含按钮和主视图。

还有另一个xml在主视图中包含我想要的内容。

现在我正在努力让这个单独的xml显示在主视图中,并且无法弄清楚如何让类来处理它自己的输入。我不想将代码粘贴到main.xml中,因为我希望保持对象的面向,并且每个视图都需要一些自定义元素,例如不同的textview。

我试图为Android转换的一个例子如下: -

//The ViewInt class has its own layout
ViewInt tempView = new ViewInt(i, mFloorNo);
//The viewInt class is then added to the main window.
mainWindowPanel.add(tempView);

这一小段代码将创建一个视图,将其添加到主视图,然后主窗口中的任何输入都由该类处理,但同时不在此主窗口中的任何输入由另一个类处理(可能是根类)。 非常感谢任何帮助,谢谢。

澄清: 该程序有一个侧面板布局,包含按钮。并且主视图布局是空的。我正在尝试将.xml布局设置为此主视图布局,并将其设置为如果在该主视图中按下任何按钮,则该布局的类将处理它。

1 个答案:

答案 0 :(得分:0)

如果我理解你要做什么,那么我会扩展其中一个布局类来创建我的面板类,然后简单地将它们嵌套在main.xml布局文件中的另一个布局(也许是RelativeLayout)。

public class MyPanel extends LinearLayout
    implements Button.onClickListener {
    // Do things which are common to the side & main panels in this class
}

public class MySidePanel extends MyPanel {
}

public class MyMainPanel extends MyPanel {
}

然后在res / layout / main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <com.mydomain.MySidePanel
        android:orientation="vertical"
        android:id="@+id/side_panel_layout"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent" >
        <Button
            android:id="@+id/sp_Button1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
        <!-- Do other button -->
    </com.mydomain.MySidePanel>
    <com.mydomain.MyMainPanel>
    <!-- main panel layout here -->
    </com.mydomain.MyMainPanel
</RelativeLayout>

在上面我显然只在侧面板上放了一个按钮,让主面板空了,但是你应该可以看到我的方法。您还需要添加相对布局android:layout_ properties。

在您的活动中,只需setContentView(...)并创建面板类的实例。

编辑:我想提一下,虽然上面似乎绝对设置了整体布局,但没有什么可以阻止你在运行时创建新的MyMainPanel布局并将它们替换为RelativeLayout中的原始布局父节点。