嘿所有, 我在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布局设置为此主视图布局,并将其设置为如果在该主视图中按下任何按钮,则该布局的类将处理它。
答案 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中的原始布局父节点。