当前位置:首页 > 嵌入式 > 嵌入式软件
[导读] 本文主要讲述如何动态给UI界面添加布局和控件,在编程的时候很多时候需要动态显示一些内容,在动态添加View的时候,主要使用addView方法。1. addView方法简介在Android 中

 本文主要讲述如何动态给UI界面添加布局和控件,在编程的时候很多时候需要动态显示一些内容,在动态添加View的时候,主要使用addView方法。

1. addView方法简介

在Android 中,可以利用排版View的 addView 函数,将动态产生的View 物件加入到排版View 中。

例子如下:

Activity代码:

public class helloWorld extends Activity {

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView( R.layout.main );

// 取得LinearLayout 物件

LinearLayout ll = (LinearLayout)findViewById(R.id.viewObj);

// 将TextView 加入到LinearLayout 中

TextView tv = new TextView(this);

tv.setText(Hello World);

ll. addView ( tv );

// 将Button 1 加入到LinearLayout 中

Button b1 = new Button(this);

b1.setText(取消);

ll. addView ( b1 );

// 将Button 2 加入到LinearLayout 中

Button b2 = new Button(this);

b2.setText(确定);

ll. addView ( b2 );

// 从LinearLayout 中移除Button 1

ll. removeView ( b1 );

}

}

上述代码的位置,是垂直顺序排列的因为界面代码Linerlayout的orientation设置的是vertical的,但是为了美观,需要设置添加的View的位置和样式。在添加View的时候分为两类来介绍,一种是布局(例如:Linearlayout等),一种是控件(例如:Button,TextView等等。)

2. 动态添加布局(包括样式和位置)

下面的例子将介绍如何动态添加布局,基本内容和上面的代码一致,主要注重如何控制添加的布局的位置。在控制布局的位置的时候使用LayoutParam类来实现。

例子:

界面代码和上面的界面代码类似,就不在重复介绍。

Activity类部分代码:

RelativeLayout rl = new RelativeLayout(this);

//设置RelativeLayout布局的宽高

RelativeLayout.LayoutParams relLayoutParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);

this.addView(rl, relLayoutParams);

3. 动态添加控件

动态添加控件和添加布局很相似,下述代码主要注重看控制控件的位置,下面的代码和第二项添加布局的补充,在新添加的布局里面再添加控件。

界面代码同样不在重复。

Activity类部分代码:

RelativeLayout rl = new RelativeLayout(this);

//设置RelativeLayout布局的宽高

RelativeLayout.LayoutParams relLayoutParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);

TextView temp = new TextView(this);

temp .setId(1);

temp.setText(“图片”);

rl.addView(temp);

TextView tv = new TextView(this);

tv.setText(“文字”);

tv.setId(2);

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

param1.addRule(RelativeLayout.BELOW, 1);//此控件在id为1的控件的下边

rl.addView(tv,param1);

Button update = new Button(this);

update.setText(Button);

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

param2.addRule(RelativeLayout.RIGHT_OF, 1);//此控件在id为1的控件的右边

rl.addView(update,param2);

this.addView(rl, relLayoutParams);

注意:控制位置和样式的时候,布局和控件使用的方法是一样的。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

微电子产品的可靠性是评价其质量的关键指标。在微电子组装过程中,由于元器件的微小化和集成度的提高,对组装精度的要求也越来越高。因此,确保组装过程中的可靠性,对于提升产品的整体质量和客户满意度至关重要。

关键字: 微组装 组件

其他电脑(比如安卓手机/平板电脑)的屏幕坏了,你可能想在安排维修之前紧急访问一些东西。你可以使用android的USB OTG功能(是的,几乎每个android都支持这个功能,你可以将鼠标和键盘连接到它)。

关键字: USB 鼠标 Android 树莓派

青岛2025年6月30日 /美通社/ -- 海信作为全球消费电子和家用电器领域的领军品牌,在2025年国际足联俱乐部世界杯™(FIFA Club World Cup 2025™,简称"世俱杯")上,以...

关键字: 海信 AI技术 ENGINE VIEW

上海 2025年6月11日 /美通社/ -- 6月11日,国电投新能源科技有限公司(以下简称"国电投新能源")携铜栅线异质结(C-HJT)光伏组件亮相2025年SNEC国际太阳能光伏展。随着&quo...

关键字: 光伏产业 新能源 组件 光伏组件

常州 2025年5月21日 /美通社/ -- 在近期的光伏行业会议上,天合光能支架事业部联席总裁王芝斌发表题为《电力市场化交易环境下电站设备选型》的主题演讲。演讲中王芝斌不仅深入探讨了在136号文新形势下跟踪支架在提升...

关键字: 光伏 组件 电力市场 选型

Google 宣布与中国 AR 科技公司 XREAL 达成深度战略合作,联合推出全球首款专为 Android XR 平台打造的旗舰级 AR 眼镜 Project Aura。

关键字: Google XREAL Android XR眼镜 AR

青岛 2025年4月30日 /美通社/ -- 4月25日,在山东省市场监督管理局的指导下,国际独立第三方检测、检验和认证机构德国莱茵TÜV大中华区(简称"...

关键字: 新能源 研讨会 组件 太阳能光伏

青岛2025年4月22日 /美通社/ -- 全球消费电子与家电行业领导者海信今天推出了其突破性的ULED MiniLED U8系列电视。作为全球100英寸以上电视销量第一的品牌,海信持续引领大屏革命,将影院级画质与卓越性...

关键字: 海信 MINILED AI VIEW

在当今这个信息化、智能化的时代,无线通信技术已经渗透到我们生活的方方面面。从智能家居、工业自动化到远程监控、医疗健康,无线射频模块作为无线通信的核心组件,其性能与稳定性直接关系到整个系统的运行效果。本文将为大家推荐几款高...

关键字: 无线通信 组件 芯片
关闭