Android版本:使用findViewById()用字符串/在一个循环

我在做一个Android应用程序,其中有一个数百按钮,每一个特定的回调。现在,我想设置,而不必写几百行代码(用于按钮各一个)这一个循环。 我的问题是:如何才能findViewById不具有静态在键入每个按钮的id? 以下是我想要做的:

 for(int i=0; i<some_value; i++) {
  for(int j=0; j<some_other_value; j++) {
  String buttonID = "btn" + i + "-" + j;
  buttons[i][j] = ((Button) findViewById(R.id.buttonID));
  buttons[i][j].setOnClickListener(this);
  }
 }

在此先感谢!
本文地址 :CodeGo.net/250944/

------------------------------------------------------------------------------------------------------------------------- 
1. 您getIdentifier()

for(int i=0; i<some_value; i++) {
 for(int j=0; j<some_other_value; j++) {
 String buttonID = "btn" + i + "-" + j;
 int resID = getResources().getIdentifier(buttonID, "id", "com.sample.project");
 buttons[i][j] = ((Button) findViewById(resID));
 buttons[i][j].setOnClickListener(this);
 }
}

2. 一起来看看这些答案: Android和获取id为铸造一个视图作为字符串 ImageButtons的数组,从一个变量赋值R.view.id 
3. 你可以尝试做一个int []包含所有的按钮的ID,然后遍历是:

int[] buttonIDs = new int[] {R.id.button1ID, R.id.button2ID, R.id.button3ID, ... }
for(int i=0; i<buttonIDs.length; i++) {
 Button b = (Button) findViewById(buttonIDs[i]);
 b.setOnClickListener(this);
}

4. 如果您要访问您可以使用标签。 中的onClick INT I=的Integer.parseInt(v.getTag); 但你不能访问likw这个那个按钮。 简单的编程方式创建按钮 按按钮B=新的Button(本); 
5. 在java代码中的XML来创建自定义按钮,而如下图所示我

Button bs_text[]= new Button[some_value];
 for(int z=0;z<some_value;z++)
  {
   try
   {
   bs_text[z] = (Button) new Button(this);
   }
   catch(ArrayIndexOutOfBoundsException e)
   {
    Log.d("ArrayIndexOutOfBoundsException",e.toString());
   }
  }

6. 如果您的顶层视图只有那些按钮的views,子,你可以做

for (int i = 0 ; i < yourView.getChildCount(); i++) {
 Button b = (Button) yourView.getChildAt(i);
 b.setOnClickListener(xxxx);
}

如果存在多个视图你需要检查是否选择了一个是你的一个按钮。

http://codego.net/250944/

时间: 2024-10-01 05:55:09

Android版本:使用findViewById()用字符串/在一个循环的相关文章

什么是函数响应式编程(Java&amp;Android版本)

什么是函数响应式编程(Java&Android版本) 原文链接:http://www.bignerdranch.com/blog/what-is-functional-reactive-programming/ 函数响应式编程(FRP)为解决现代编程问题提供了全新的视角.一旦理解它,可以极大地简化你的项目,特别是处理嵌套回调的异步事件,复杂的列表过滤和变换,或者时间相关问题. 我将尽量跳过对函数响应式编程学院式的解释(网络上已经有很多),并重点从实用的角度帮你理解什么是函数响应式编程,以及工作中

android:ActionBarActivity findViewById的返回为NULL

由于android版本的不断升级,新的版本通常会修改不少api及其他内容. 在API=19时,由于MainActivity继承了ActionBarActivity类,舍弃了以前所使用的Activity, 1 public class MainActivity extends Activity //旧版本的继承关系 1 public class MainActivity extends ActionBarActivity { //新版本的继承关系 2 3 @Override 4 protected

Ubuntu12和13版本连接ios7设备会出现循环提示“是否信任这台电脑”

Ubuntu12和13版本连接ios7设备会出现循环提示“是否信任这台电脑”,这一问题在ubuntu14.10得到了解决. 以下是ubuntu12.04解决这一问题的方法: 所有方法的实质都是将libimobiledevice这个库升级到1.1.6版本,由于这一版本是非稳定版本,所以机器上默认安装的都是1.1.4稳定版本. 1.网上很多人说可以使用加一个ppa的源,然后update+upgrade的方法进行,但是通常给出的ppa源都会404 notfound.但是这里留下一些ppa源: sudo

我的Android进阶之旅------&gt;android Button上面的英文字符串自动大写的问题解决

今天碰到一个关于Button的问题:android Button上面的英文字符串会自动变成大写,运行的Android 5.1版本,如下图所示: 图1:Button 图2:TextView 这个Button的定义代码如下 <Button android:id="@+id/addContacts" android:layout_width="match_parent" android:layout_height="wrap_content" a

Java后台解析android端发送的JSON字符串

在设备通讯中,往往会用到数据交互.我们这里用的是通过HTTP协议发送JSON数据,android客户端把数据进行打包,发送到后台服务器,后台解析出来. //android客户端拼装JSON字符串 //如下的拼装结果为: {"data":[{"id":"12345","name":"张三"},{"id":"54321","name":"李四

仿一号店APP商品分类效果开发Android版本

昨天我们一起学习了一下一号店(IOS版本)(仿一号店APP商品分类效果开发IOS)商品分类效果编写今天我们一起来看一下Android版本上面的实现.其实我们的实现的具体思路差不多.总体先搞定一级分类,然后二级我们这边使用GridView布局.然后点击一级分类的每一项的时候,动态显示以及隐藏相关的二级分类数据.现在我们来看一下实现的效果. 然后这边还有一点需要介绍的是ViewGrounp的一个动画android:animateLayoutchanges属性.这个属性设置这样就自动地按照默认方式来对

文字转图片APP,Android版本(长微博手机版)超越长微博

文字转图片,目前支持自定义生成图片尺寸(默认为手机宽度*自适应高度),支持字体大小,颜色,背景色,背景图,字体,行间距设置,以及自定义水印.并且增加了二维码功能和文件导入生成功能,其中二维码功能用于文字生成二维码后,使用文字转图片二维码扫描后,会立即生成对应的文字图片,支持加密!自定义密钥等功能,后期的创新功能陆续开发中! 开发者:谭东. 顶尖文字转图片技术!更多功能开发中 下载地址:http://pan.baidu.com/s/1qWHIPru 联系QQ :85204173 下载地址:http

代码获取Android版本等信息

我手机的关于手机界面: 说明: 其中手机型号.Android版本.软件版本通过系统Build类得到,处理器信息.内核版本通过读取系统文件得到,基带版本信息通过反射得到. 源码: package com.example.shen.phoneinfo; import android.app.Activity; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.L

Android中资源文件中的字符串数组string-array简单用法

在Android中,用string-array是一种简单的提取XML资源文件数据的方法. 例子如下: 把相应的数据放到values文件夹的strings.xml文件里,或是其他自定义的xml中都可以,以下操作方法相同. <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="sports"> <item>足球<