gpt4 book ai didi

android - 我可以在 Android 中创建一个包含 UI 和逻辑/代码的独立 "usercontrol"吗?

转载 作者:太空狗 更新时间:2023-10-29 15:19:33 24 4
gpt4 key购买 nike

UserControls - 我如何在 Android 中实现它?

我在 SO 上提出的一些问题与我在 Android 中创建“用户控件”的努力有关,即一个可重用的组件,它定义了它的布局和逻辑/代码,并且可以放在应用程序的任何地方我需要它。

我希望能够:

  • 能够实例化该类,以便我拥有一个可以访问其属性、方法等的实际对象
  • 将 UserControl 放置在 layout-xml 文件中定义的另一个布局中
  • 在 Dialog/AlertDialog 中使用 UserControl

例如,我创建了一个 MyUserControl 实例。有了它,我可以将它放在 PopupWindow 中并显示它,或者在 Dialog/AlertDialog 中使用它,或者在布局中的某个地方使用它。在所有情况下,我都可以访问对象 (myUserControl),因此我可以做一些事情(myUserControl.SetObject(MyObject o) 或其他事情)。

简而言之:.NET 具有我正在寻找的概念,它的模块化“UserControl”是一个独立的组件,它本身具有布局和代码(当然,布局 XML 是一个单独的文件,但那是好的)。这有充分的理由,因为我真的很讨厌“代码重复”。我想要一段可以随处使用的代码/组件。

这可行吗?

最佳答案

1- 为您的组件创建新的 xml 文件。示例:MyUserControl.xml - 在此文件中,根据需要制作您的组件。示例:linearLyout 有两个按钮。

2- 为您的组件创建新类并从您的 xml 文件的 Root View 扩展它。示例:从 LinearLayout 扩展。

3 - 将此构造函数添加到您的类中

 public ClassName(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.yourXmlFile, this);

}
public ClassName(Context context) {
super(context);
// TODO Auto-generated constructor stub
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.yourXmlFile, this);
}

关于android - 我可以在 Android 中创建一个包含 UI 和逻辑/代码的独立 "usercontrol"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9346027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com