Android中利用LinearLayout动态添加控件
Android中利用LinearLayout动态添加控件
在androidUI布局中,一般都是利用xml来布局控件,这是比较方便和直观的,但是有时却需要动态生成,下面就举2个简单例子来说明怎么动态添加控件:
1.动态添加2个垂直排列的Button
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- //setContentView(R.layout.main);
- final LinearLayout layout2=new LinearLayout(this);
- layout2.setOrientation(LinearLayout.VERTICAL);
- Button btn1=new Button(this);
- setContentView(layout2);
- Button btn2=new Button(this);
- btn1.setText("Button1");
- btn2.setText("Button2");
- layout2.addView(btn1);
- layout2.addView(btn2);
- setContentView(layout2);
- }
final LinearLayout layout2=new LinearLayou(this);
定义一个LinearLayout ,参数为context在这儿即为this
layout2.setOrientation(LinearLayout.VERTICAL);
设置layout格式为vertical,竖直排列
2.在Button的click事件中动态添加一个button
- OnClickListener listen1;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- //setContentView(R.layout.main);
- final LinearLayout layout2=new LinearLayout(this);
- layout2.setOrientation(LinearLayout.VERTICAL);
- Button btn1=new Button(this);
- setContentView(layout2);
- Button btn2=new Button(this);
- btn1.setText("Button1");
- btn2.setText("Button2");
- layout2.addView(btn1);
- layout2.addView(btn2);
- listen1 = new OnClickListener() {
- public void onClick(View v) {
- setTitle("点击button1 ");
- Button btn3=new Button(v.getContext());
- layout2.addView(btn3);
- btn3.setText("Button3");
- }
- };
- btn1.setOnClickListener(listen1);
- }
与上一例子区别就是,在Button的OnClickListener中动态添加控件,需要注意的一点是 Button btn3=new Button(v.getContext);参数v.getContext为当前view的context,为什么例子1中用this作为context呢,呵呵,这是因为this即当前的activity,而activity又是context的子类,所以this就可以直接作为activity了。
查了下,context派生的类有:
java.lang.Object | |
↳ | android.content.Context |
Known Direct Subclasses
ContextWrapper , MockContext
|
Known Indirect Subclasses
转载于:https://www.cnblogs.com/gzhnan/articles/5270175.html
Android中利用LinearLayout动态添加控件相关推荐
- Android 在布局容器中动态添加控件
这里,通过一个小demo,就可以掌握在布局容器中动态添加控件,以动态添加Button控件为例,添加其他控件同样道理. 1.addView 添加控件到布局容器 2.removeView 在布局容器中删掉 ...
- 动态添加综合布局---动态添加控件及将某XML动态加入到Activity显示(续)
前言:以前曾写过一篇关于动态生成控件的文章<动态添加控件及将某XML动态加入到Activity显示>,比较浅显,对于RelativeLayout的相关布局设置方法及相对布局与线性布局的混合 ...
- 动态添加控件及将某XML动态加入到Activity显示
一.动态添加控件.设置参数 这个难度比较大,放在前面讲,用的也比较多,普通情况下,我们会提前把布局XML写好,然后对XML中的元素进行设置,但这种方法在有些情况下就显得不适合,比较聊天应用,比如帖子的 ...
- android 巧妙利用反射机制获取控件id,避免大量冗杂的findviewbyid和butterknife注解
android 巧妙利用反射机制获取控件id,避免大量冗杂的findviewbyid和butterknife注解 一.反射机制概述 Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的 ...
- asp.net动态添加控件学习
看了老师的教程后,自己一点感悟记录下来: 1.在页面提交后,动态生成的控件会丢失, 但如果生成控件的代码在pageload中,就可以,原理是每次生成页面都执行生成. 2.动态按件或页面原来控件, 在页 ...
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
博客分类: jquery-easyui jQueryAjax框架HTML 现象: AJAX返回的html无法做到自动渲染为EasyUI的样式.比如:class="easyui-layout ...
- 关于页面动态添加控件(转)
最近看到很多问题都是关于页面动态添加控件,页面postback以后,就取不到这些控件了.其实每次在页面上动态添加控件(或者在数据控件上动态添加列),它们的状态是不会被添加到页面的ViewState中去 ...
- delphi中利用Indy的TIdFtp控件实现FTP协议
2019独角兽企业重金招聘Python工程师标准>>> delphi中利用Indy的TIdFtp控件实现FTP协议版权声明:本文为博主原创文章,未经博主允许不得转载.现在很多应用都需 ...
- 学习笔记:VB.net动态添加控件数组并传递事件
学习笔记:VB.net动态添加控件数组并传递事件 控件数组和事件 "中间人" 动态添加控件 控件数组和事件 新建一个用户窗体,在定义控件数组时,不能用Withevnets来定义数组 ...
- Windows phone7 动态添加控件
Windows phone7 动态添加控件 2011-03-29 3:48 using System; using System; using System.Collections.Generic; ...
最新文章
- 德国耶拿大学植物微生物组实验室急招博士生项目,申请截止19年3月20日
- UA OPTI501 电磁波 Lorentz Oscillator Model 1 Drude-Lorentz模型
- Android适配器以及作用,Android RecyclerView 通用适配器的实现
- Appium Python 六:管理应用和Activity
- linux 监控命令
- echarts如何获取后端的值_散户必读:当你中线看好一只股票后,该如何操作才能获取最大利润...
- 时钟周期及秒(s) 毫秒(ms) 微秒(μs) 纳秒(ns) 皮秒(ps)之间转换
- [深入JUnit] 测试运行的入口
- C# IOCP完成端口模型(简单实用高效)
- JPDA 架构研究14 - Agent利用环境指针访问VM(对象管理篇)
- linux安装mysql5.6rpm_centos6.5 下安装mysql5.6,rpm方式
- mysql concat函数进行模糊查询
- Java面试基础篇-Redis缓存
- 韦根(Wiegand协议)
- 2015游戏蛮牛——蛮牛杯第四届开发者大赛 创见VR未来开启报名
- 新加坡政府将与加美两国就网络安全问题展开合作
- 完美解决浏览器劫持方法,简单实用百试百灵!
- 用CSS美化你的HTML
- pythondjango教程_【秒懂】号称最为简明实用的Django上手教程
- oracle ppt讲义,oracle课件.ppt
热门文章
- Yii 2.0 权威指南 (4) 使用 Gii 生成代码
- 前端干货:教你轻松去除inline-block元素空隙
- C 标准库中输出到字符串、到文件的相关函数
- 19. 镜像二叉树(C++版本)
- mysql数据库备份oss_Linux(CentOS7)设置自动备份数据库到阿里云OSS(示例代码)
- python requests json_python:解析requests返回的response(json格式)
- FISCO BCOS(七)——— 配置 WeBase
- 大数据Hadoop学习记录(5)----Ubuntu16.4下安装配置HBase
- (day 52 - 约舍夫环问题 ) 剑指 Offer 62. 圆圈中最后剩下的数字
- mysql80连接不上本地服务器_干货教程:如何在服务器上安装Mysql8.0