//获取屏幕大小,以合理设定 按钮 大小及位置

  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开发之动态创建多个按钮相关推荐

  1. android popupmenu 动态添加,Android开发使用PopupMenu创建弹出式菜单完整实例

    本文实例讲述了Android开发使用PopupMenu创建弹出式菜单.分享给大家供大家参考,具体如下: 简介: PopupMenu 代表弹出式菜单,它会在指定组件上,默认情况下,PopupMenu会显 ...

  2. Android开发之动态库调用

    发信人: yangAlbert (蓝), 信区: Android 标  题: Android开发之动态库调用 发信站: 武汉白云黄鹤站 (2011年02月20日23:20:51 星期天) 1.编写并生 ...

  3. QT5动态创建多个按钮控件并关联信号槽函数

    创建QT对话框工程,动态创建多个按钮,把动态创建的按钮存放在QList中,并关联同一个信号槽函数,在该槽函数中根据按钮对象名称各自进行其他事项处理. 在mainwindow.h文件添加 #ifndef ...

  4. android开发 实现动态获得app的cpu占有率并导出文件的两种方法。

    android开发 实现动态获得app的cpu占有率并导出文件的两种方法. 最近在做学校实验室的项目的时候,师兄要求我对app的性能进行评估,主要是从电量.cpu占有率.python模型的响应时间三者 ...

  5. Android基础之用Eclipse搭建Android开发环境和创建第一个Android项目(Windows平台)...

    原地址:http://www.cnblogs.com/allenzheng/archive/2012/11/10/2762379.html 一.搭建Android开发环境 准备工作:下载Eclipse ...

  6. 【VS开发】动态创建ActiveX控件

    bool CCollectDataDlgDlg::CreateMyCtrl(LPRECT lpRect, UINT nID, CWnd *pParent) {  CLSID clsid;  wstri ...

  7. 关于android开发环境的创建

    最近想暑假找个实习单位,想想java android方面的应该比c.C++要好点,然后就想重操旧业学习android 大三的时候我学过一个学期的android知识.当时创建开发环境我很快就弄好了,但是 ...

  8. Android开发笔记(三十七)按钮类控件

    Button与ImageButton Button是文本按钮(继承自TextView),而ImageButton是图像按钮(继承自ImageView).两者之间的区别在于: 1.Button即可显示文 ...

  9. 在 JavaScript 中动态创建表格、按钮和 DIV

    使用 document.createElement() 方法,您可以在 JavaScript 中动态创建指定的 HTML 元素.创建后,您可以将元素插入(或添加)到您的网页,或将其添加到预定义元素或动 ...

最新文章

  1. python 人工智能库_人工智能与Python库的关系
  2. C#语法糖(Csharp Syntactic sugar)大汇总
  3. Ubuntu 安装flash
  4. 计算机科学导论课后单词,计算机科学导论课后总结
  5. 程序员面试金典 - 面试题 03.05. 栈排序(两栈)
  6. Django 添加应用
  7. 市面上流行编曲软件盘点,那一款是你的菜?
  8. 嵊州D1T1 总统先生,一路走好!
  9. GlobalMapper20使用控制点对地形数据(高程数据)进行高程纠正(高程拟合/纠偏/配准)
  10. JAVA转大数据的学习之路,就该这样走(内附1T大数据资料)
  11. RAC环境的AFD详解
  12. ubuntu wifi bcm4322 安装驱动
  13. SAAS产品有哪些优缺点?
  14. 推荐3个网页设计在线配色网站
  15. win10系统dns错误如何解决【系统天地】
  16. html中 cookie设置
  17. iphone怎么更新9.0系统更新服务器,iOS 9 推送前你必须知道的几件事:iOS 9 升级指南...
  18. 一位清华计算机专业的学生怎么看LINUX与WINDOWS
  19. Backend(Server)
  20. 微信开发者工具报跨域问题,以及配置微信开发者工具可跨域

热门文章

  1. Web前端程序员该如何准备面试?这些面试知识应该掌握
  2. 7-1 输入学生姓名,输出问候信息。
  3. msdn服务器系统,操作系统
  4. java怎么自增2_从头认识java-2.3 自增自减与关系操作符
  5. STM32F103基本定时器使用
  6. STM32单片机启动文件startup_stm32f10x_hd.s详解
  7. 06_LR和最大熵模型_统计学习方法
  8. Linux内核 设备树操作常用API【转】
  9. 70多个国家地区免费享受wifi
  10. Error--解决使用Application Loader提交ipa包审核时的报错:ERROR ITMS-90168: The binary you uploaded was invalid....