android: 一个新的 GUI 问题 - 如何声明 viewGroup,没有布局 XML 文件?

Posted

技术标签:

【中文标题】android: 一个新的 GUI 问题 - 如何声明 viewGroup,没有布局 XML 文件?【英文标题】:android: a newby GUI question - how to declare viewGroup, without layout XML file? 【发布时间】:2010-12-04 17:23:44 【问题描述】:

在应用程序中,我正在为我有一个自定义视图而苦苦挣扎。 我无法在布局 XML 文件中声明它,因为我将在包含我的自定义视图实例的活动中使用它,并且我需要访问它(无法覆盖 findViewById...)。

因此我决定将所有 GUI 元素声明到 Activity 中。

但我根本无法向前迈出一步,因为我什至无法实例化 viewGroup...

这就是我正在尝试的:

@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);

    ViewGroup vg = new ViewGroup(this.getApplicationContext());

    setContentView(vg);


我得到“无法实例化 ViewGroup”...

有人可以举一个简单的例子,说明如何声明一个包含视图的 viewGroup 吗?

该类的文档对初学者也不是很友好...所有示例都集中在描述布局 XML 文件中的布局...?

感谢您的努力,举个例子!

【问题讨论】:

【参考方案1】:

[ViewGroup][1] 是一个抽象类,你不能实例化它。它定义了一种类型的类,该类将成为将其他视图放入其中的容器。换句话说,像LinearLayoutRelativeLayout 这样的布局是ViewGroup。因此,您可以这样做:

   @Override
 public void onCreate(Bundle savedInstanceState) 
  super.onCreate(savedInstanceState);

  LinearLayout vg = new LinearLayout(this);
// set the LayoutParams the way you want.
// and add textviews, imageviews, ... here for instance.
  setContentView(vg);

 

对于LayoutParams,我认为你应该从 LayoutParams.Fill_parent 开始

【讨论】:

非常感谢!对不起,我表现出巨大的无知 - 我没有注意到 ViewGroup 是抽象类...... 没问题。每个人都会犯错;)

以上是关于android: 一个新的 GUI 问题 - 如何声明 viewGroup,没有布局 XML 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何从Android-x86中的命令行启动GUI

如何在不安装 Android Studio 的情况下安装 GUI android SDK 管理器

如何在 C++ 中向 MFC 项目添加另一个 gui

如何在不打开 Android Studio 的情况下打开 AVD Manager GUI?

在基于 GUI 的 Android 应用程序中,如何找到启动意图的特定按钮?

JAVA的GUI中如何实现按下某个按钮后关闭当前窗口,打开新的窗口?