Android开发之动态创建多个按钮
//获取屏幕大小,以合理设定 按钮 大小及位置
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
int height = dm.heightPixels;
//自定义layout组件
RelativeLayout layout = new RelativeLayout(this);
//这里创建16个按钮,每行放置4个按钮
Button Btn[] = new Button[16];
int j = -1;
for (int i=0; i<=15; i++) {
Btn[i]=new Button(this);
Btn[i].setId(2000+i);
Btn[i].setText("按钮"+i);
RelativeLayout.LayoutParams btParams = new RelativeLayout.LayoutParams ((width-50)/4,40); //设
置按钮的宽度和高度
if (i%4 == 0) {
j++;
}
btParams.leftMargin = 10+ ((width-50)/4+10)*(i%4); //横坐标定位
btParams.topMargin = 20 + 55*j; //纵坐标定位
layout.addView(Btn[i],btParams); //将按钮放入layout组件
}
this.setContentView(layout);
//批量设置监听
for (int k = 0; k <= Btn.length-1; k++) {
//这里不需要findId,因为创建的时候已经确定哪个按钮对应哪个Id
Btn[k].setTag(k); //为按钮设置一个标记,来确认是按下了哪一个按钮
Btn[k].setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
int i = (Integer) v.getTag(); //这里的i不能在外部定义,因为内部类的关系,内部类好多繁琐的
东西,要好好研究一番
Intent intent = new Intent();
intent.setClass(Work_01.this, Work_02.class);
Bundle bundle = new Bundle();
bundle.putInt("count", i);
intent.putExtras(bundle);
startActivity(intent);
Work_01.this.finish();
}
});
}
然后,可以在Work_02里将“按下的按钮为:” i 打印出来,以确认设置的监听是否正确。
比如,按下 按钮0 ,在Work_02对应的页面里,应该打印出 “按下的按钮为:0 ”。
转载于:https://www.cnblogs.com/youlechang123/p/5693766.html
Android开发之动态创建多个按钮相关推荐
- android popupmenu 动态添加,Android开发使用PopupMenu创建弹出式菜单完整实例
本文实例讲述了Android开发使用PopupMenu创建弹出式菜单.分享给大家供大家参考,具体如下: 简介: PopupMenu 代表弹出式菜单,它会在指定组件上,默认情况下,PopupMenu会显 ...
- Android开发之动态库调用
发信人: yangAlbert (蓝), 信区: Android 标 题: Android开发之动态库调用 发信站: 武汉白云黄鹤站 (2011年02月20日23:20:51 星期天) 1.编写并生 ...
- QT5动态创建多个按钮控件并关联信号槽函数
创建QT对话框工程,动态创建多个按钮,把动态创建的按钮存放在QList中,并关联同一个信号槽函数,在该槽函数中根据按钮对象名称各自进行其他事项处理. 在mainwindow.h文件添加 #ifndef ...
- android开发 实现动态获得app的cpu占有率并导出文件的两种方法。
android开发 实现动态获得app的cpu占有率并导出文件的两种方法. 最近在做学校实验室的项目的时候,师兄要求我对app的性能进行评估,主要是从电量.cpu占有率.python模型的响应时间三者 ...
- Android基础之用Eclipse搭建Android开发环境和创建第一个Android项目(Windows平台)...
原地址:http://www.cnblogs.com/allenzheng/archive/2012/11/10/2762379.html 一.搭建Android开发环境 准备工作:下载Eclipse ...
- 【VS开发】动态创建ActiveX控件
bool CCollectDataDlgDlg::CreateMyCtrl(LPRECT lpRect, UINT nID, CWnd *pParent) { CLSID clsid; wstri ...
- 关于android开发环境的创建
最近想暑假找个实习单位,想想java android方面的应该比c.C++要好点,然后就想重操旧业学习android 大三的时候我学过一个学期的android知识.当时创建开发环境我很快就弄好了,但是 ...
- Android开发笔记(三十七)按钮类控件
Button与ImageButton Button是文本按钮(继承自TextView),而ImageButton是图像按钮(继承自ImageView).两者之间的区别在于: 1.Button即可显示文 ...
- 在 JavaScript 中动态创建表格、按钮和 DIV
使用 document.createElement() 方法,您可以在 JavaScript 中动态创建指定的 HTML 元素.创建后,您可以将元素插入(或添加)到您的网页,或将其添加到预定义元素或动 ...
最新文章
- python 人工智能库_人工智能与Python库的关系
- C#语法糖(Csharp Syntactic sugar)大汇总
- Ubuntu 安装flash
- 计算机科学导论课后单词,计算机科学导论课后总结
- 程序员面试金典 - 面试题 03.05. 栈排序(两栈)
- Django 添加应用
- 市面上流行编曲软件盘点,那一款是你的菜?
- 嵊州D1T1 总统先生,一路走好!
- GlobalMapper20使用控制点对地形数据(高程数据)进行高程纠正(高程拟合/纠偏/配准)
- JAVA转大数据的学习之路,就该这样走(内附1T大数据资料)
- RAC环境的AFD详解
- ubuntu wifi bcm4322 安装驱动
- SAAS产品有哪些优缺点?
- 推荐3个网页设计在线配色网站
- win10系统dns错误如何解决【系统天地】
- html中 cookie设置
- iphone怎么更新9.0系统更新服务器,iOS 9 推送前你必须知道的几件事:iOS 9 升级指南...
- 一位清华计算机专业的学生怎么看LINUX与WINDOWS
- Backend(Server)
- 微信开发者工具报跨域问题,以及配置微信开发者工具可跨域
热门文章
- Web前端程序员该如何准备面试?这些面试知识应该掌握
- 7-1 输入学生姓名,输出问候信息。
- msdn服务器系统,操作系统
- java怎么自增2_从头认识java-2.3 自增自减与关系操作符
- STM32F103基本定时器使用
- STM32单片机启动文件startup_stm32f10x_hd.s详解
- 06_LR和最大熵模型_统计学习方法
- Linux内核 设备树操作常用API【转】
- 70多个国家地区免费享受wifi
- Error--解决使用Application Loader提交ipa包审核时的报错:ERROR ITMS-90168: The binary you uploaded was invalid....