安卓(Android)动态创建多个按钮并添加监听事件

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

 DisplayMetrics dm = new DisplayMetrics();
 getWindowManager().getDefaultDisplay().getMetrics(dm);
 int width = dm.widthPixels;
 int height = dm.heightPixels;

2.自定义layout组件

 RelativeLayout layout = new RelativeLayout(this); 

3.这里创建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);

4.设置按钮的宽度和高度

 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);

5.批量设置监听

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();

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

(0)

相关推荐

  • android监听返回按钮事件的方法

    本文实例讲述了android监听返回按钮事件的方法.分享给大家供大家参考.具体如下: 用户在点击手机的返回按钮时,默认是推出当前的activty,但是有时用户不小心按到返回,所以需要给用户一个提示,这就需要重写onkeydown事件,实现的效果如下: java代码如下: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.l

  • Android中让按钮拥有返回键功能的方法及重写返回键功能

    让按钮拥有返回键的功能很简单,在点击事件加上finish();就OK了. 如: 复制代码 代码如下: public void onClick(View v){ finish(); } finish() 仅仅是把activity从当前的状态退出,但是资源并没有给清理. 其实android的机制决定了用户无法完全退出application,即使用System.exit(). android自己决定何时该从内存中释放程序,当系统没有可用内存时,就会按照一定的优先级来销毁应用程序. android手机操

  • Android使用自定义alertdialog实现确认退出按钮

    有时候我们需要在游戏或应用中用一些符合我们样式的提示框(AlertDialog),以下是我在开发一个小游戏中总结出来的.希望对大家有用. 先上效果图: 下面是用到的背景图或按钮的图片 经过查找资料和参考了一下例子后才知道,要实现这种效果很简单.就是在设置alertDialog的contentView. 以下的代码是写在Activity下的,代码如下: public boolean onKeyDown(int keyCode, KeyEvent event) { // 如果是返回键,直接返回到桌面

  • Android滑动动态分页实现方法

    本文实例讲述了Android滑动动态分页实现方法.分享给大家供大家参考,具体如下: 实现 Android.widget.AbsListView.OnScrollListener 主要代码: private int lastItemIndex; @Override public void onScroll(AbsListView v, int firstVisibleItem,int visibleItemCount, int totalItemCount) { lastItemIndex = f

  • Android编程动态按钮实现方法

    本文实例讲述了Android编程动态按钮实现方法.分享给大家供大家参考,具体如下: 第一种: 该方法通过onTouch来实现, btn3 = (ImageButton) findViewById(R.id.ImageButton03); btn3.setOnTouchListener(touchListener3); View.OnTouchListener touchListener = new OnTouchListener() { @Override public boolean onTo

  • Android编程动态加载布局实例详解【附demo源码】

    本文实例讲述了Android编程动态加载布局的方法.分享给大家供大家参考,具体如下: 由于前段时间项目需要,需要在一个页面上加载根据不同的按钮加载不同的布局页面,当时想到用 tabhot .不过美工提供的界面图完全用不上tabhot ,所以想到了动态加载的方法来解决这一需求.在这里我整理了一下,写了一个 DEMO 希望大家以后少走点弯路. 首先,我们先把界面的框架图画出来,示意图如下: 中间白色部门是一个线性布局文件,我喜欢在画图的时候用不同的颜色将一块布局标示出来,方便查看.布局文件代码如下:

  • Android自定义View制作动态炫酷按钮实例解析

    普通按钮也就那么几种样式,看着都审美疲劳,先放效果图: 你会不会以为这个按钮是集结了很多动画的产物,我告诉你,并没有.所有的实现都是基于自定义View,采用最底层的onDraw一点一点的画出来的.没有采用一丁点的动画.虽然演示时间很短,但是要完成这么多变化,还是挺吃力. 首先讲解用法: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState)

  • Android按钮按下的时候改变颜色实现方法

    需求是在我按下按钮时,该变按钮颜色,使用户感觉到自己按了按钮,当松开的时候,变回原来的颜色. 正常时: 按下时: 有人说,直接监听按钮的按下事件不得了嘛,其实这样确实能实现同样的效果,但是有个缺点,比如很多按钮都需要这样的效果,那你同样的代码就要重复很多次.所以,还是要通用起来. 首先,在res文件夹下新建一个文件夹drawable,这是无关分辨率的: 在下面建立一个xml文件:login_button_selector.xml 复制代码 代码如下: <selector xmlns:androi

  • Android实现点击AlertDialog上按钮时不关闭对话框的方法

    本文实例讲述了Android实现点击AlertDialog上按钮时不关闭对话框的方法.分享给大家供大家参考.具体如下: 开发过程中,有时候会有这样的需求: 点击某个按钮之后显示一个对话框,对话框上面有一个输入框,并且有"确认"和"取消"两个按钮.当用户点击确认按钮时,需要对输入框的内容进行判断.如果内容为空则不关闭对话框,并toast提示. 使用AlertDialog.Builder创建对话框时,可以使用builder.setNegativeButton和build

  • 如何在Android中实现渐显按钮的左右滑动效果

    先看下运行效果:    程序结构: MainActivity文件中代码: 复制代码 代码如下: package com.android.buttonpageflipper;import android.app.Activity;import android.graphics.PixelFormat;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.Gra

  • Android按钮单击事件的四种常用写法总结

    很多学习Android程序设计的人都会发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同.因此本文就把这些写法总结一下,比较下各种写法的优劣,希望对大家灵活地选择编码方式可以有一定的参考借鉴价值. xml文件代码如下: <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_conte

随机推荐