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

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 ”。

更多相关文章

  1. 简单的中间文字两边按钮
  2. 【小超_Android】2015最流行的android组件、工具、框架大全(后续)
  3. Android应用程序组件Content Provider在应用程序之间共享数据的
  4. Android ImageSwitcher 实现按钮的3d旋转效果
  5. 设置 Toolbar(ActionBar) 上的按钮颜色
  6. Android中的BatteryService及相关组件
  7. Android 开源组件和第三方库汇总

随机推荐

  1. Android(安卓)蓝牙客户端实现
  2. Android(安卓)IOC
  3. Handy adb commands for Android
  4. Android(安卓)Hide the title bar in 2 w
  5. android sensors 总结(四)
  6. android图片工具类
  7. Android判断网络是否可用并且开启网络
  8. Android(安卓)一键分享功能简单实现
  9. 仿抖音视频详情页的红心点赞动效
  10. 两种方法实现卫星式菜单